Commit Graph

9643 Commits

Author SHA1 Message Date
Mike Blumenkrantz af230fc7f6 disable ecore-evas events on client windows during actions
this is a not-great way of hacking around various issues related to
the efl mouse button cancel patches that went in for the 1.15 cycle
which changed the entire mouse input workings of the toolkit.

to avoid further issues, the compositor will explicitly block eventing
on all internal canvases during actions
2015-07-28 16:49:18 -04:00
Mike Blumenkrantz bbecf27c97 reject x11 NotifyVirtual and NotifyInferior mouse in events
these are triggered "in passing" when mouse in events occur and do
not necessarily indicate that the mouse has entered this specific window

failing to reject such events can cause mouse-based focus policies to
attempt to set focus onto windows which are not visible, resulting in
an infinite loop where no window is actually focused
2015-07-27 13:29:06 -04:00
Mike Blumenkrantz 7203abf8a3 allow x11 mouse wheel events to check ev->event_window for possible client match
in the event that these windows are different, event_window is the parent of window
which may or may not be explicitly tracked by an E_Client, so the wheel events here
should be sent to the parent as is done in mouse button events

fix T2604
2015-07-27 13:27:57 -04:00
Mike Blumenkrantz a0ac666b47 improve x11 compatibility with efl versions earlier than 1.15
canvas grabs changed completely in 1.15, and so it's required that
x11 grab handling also have special runtime cases for this

for such versions the compositor must:
* always grab the internal client window instead of the parent
* always ungrab the window when it has focus
2015-07-24 13:19:11 -04:00
Mike Blumenkrantz 510660e157 use runtime check for determining x11 compositor grab behavior
this should fix the case of users not recompiling enlightenment after
upgrading their efl version
2015-07-24 13:00:16 -04:00
Mike Blumenkrantz 73102c7048 simulate modal windows for badly behaved x11 clients
it seems that some clients, eg. libreoffice, don't set the modal window
property on child dialogs. instead of fighting for focus, set up the child
as a modal on the parent and then avoid the whole issue

fix T2594
2015-07-21 18:35:47 -04:00
Mike Blumenkrantz ef18cc3f93 ensure clients possess comp_data before dereferencing it during x11 stacking
ref T2566
2015-07-21 14:36:33 -04:00
Mike Blumenkrantz a6990c69a8 never use new clients for stacking part 2: the secret of the stacking
a client with this flag set here is unreliable to use as a stacking
reference since it has yet to be stacked and can be located anywhere
in the window stack.

fixes internal window stacking on startup
2015-07-15 16:26:06 -04:00
Mike Blumenkrantz 3dfb5e07af only trigger client mouse-in from x11 mouse move event if client+desk are visible
ref T2566
2015-07-15 16:24:50 -04:00
Mike Blumenkrantz 75df7e0943 only unset e MANAGED atom on non-shutdown
broken during a bad rebase of 4f8af72fe3
2015-07-15 15:19:24 -04:00
Mike Blumenkrantz 276d979534 fix compile warning 2015-07-10 13:11:42 -04:00
Mike Blumenkrantz b8ee271011 always set x11 override client geometry on startup
this geometry isn't something we can change later, so apply it now.
also fixes an ACK when trying to show input_only clients early
2015-07-10 13:10:41 -04:00
Mike Blumenkrantz 4f8af72fe3 move grabinput focus fix timer to x11 compositor and fix it to Work Better
see inline comments about x11 focus eventing for details

fix T2547
2015-07-08 12:49:06 -04:00
Mike Blumenkrantz 2342a4d38f fix compile against newer efl 2015-07-08 12:46:05 -04:00
Mike Blumenkrantz 0fa853d742 account for race condition when creating initial comp object updates tiler
added to maintain compositor logic parity
2015-07-08 12:45:41 -04:00
Mike Blumenkrantz eef5efe8c3 move E_Client->mouse.in to E_Client->mouse_in to avoid abi breakage 2015-07-07 13:15:45 -04:00
Mike Blumenkrantz 303edb544d block client signal binding activation when mouse action is active
this prevents oddities such as activating [window shade] and [resize] actions
simultaneously from breaking the compositor
2015-07-07 13:12:40 -04:00
Mike Blumenkrantz b8cfc7238c make e_client_util_desk_visible() work for overrides without desks 2015-07-06 12:48:02 -04:00
Mike Blumenkrantz 62da0f32bf do not apply x11 focus grabs to internal clients if efl version > 1.14
due to recent changes in ecore-input-evas, mouse events are propagated
differently; specifically, there are now "more" events than there previously were.
as a result, grabs on internal wins are no longer necessary, though they probably
never were necessary after the elm conversion

see 5cb6cdbc5e1a13ea0262e155983b494e6519abde in efl
2015-07-02 12:35:21 -04:00
Mike Blumenkrantz 632bdd84a7 fix build break from last commit 2015-07-02 12:34:55 -04:00
Mike Blumenkrantz 0c518414e1 reject x11 replay clicks when event window != client window 2015-07-01 18:02:26 -04:00
Mike Blumenkrantz 26c291c02d only ungrab x11 windows when appropriate focus options are set 2015-07-01 16:50:01 -04:00
Mike Blumenkrantz b0df36d595 ensure x11 focus grabs are applied on client init when needed 2015-07-01 15:57:39 -04:00
Chris Michael 099861c55a enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 15:56:20 -04:00
Mike Blumenkrantz 00904480d5 straggler ungrab of x11 parent window from previous commit 2015-07-01 15:33:34 -04:00
Mike Blumenkrantz f1fdb26d20 redo all x11 client mouse grabbing for focus
I did an audit of this and it seemed that it no longer served the purpose
for which it was originally intended. specifically, this is for enforcing
click: raise/focus options, and so grabs must be in play on client windows
only when they are not focused to ensure that we get mouse events and can
then focus them. the grabs must then be removed once the window has focus
to avoid spurious mouse eventing
2015-07-01 15:32:06 -04:00
Mike Blumenkrantz 87f4a69612 use client window for x11 button ungrabbing
ref afb62b4989
2015-06-30 18:49:26 -04:00
Carsten Haitzler d7f384f092 e passive window grabs - fix side-effect leave/enter events on clients
when you have click to focus we have a passive grab set up. somewhere
that window changed to the parent window instead of the client. this
leads to a side effect of a leave and enter event on clients for every
click. generally clients are ok with this, but some seem to have buggy
event handling. these enter/leave events are a side effect of the
passive grab even though we allow/replay the event.

this fixes that by placing passive grabs on the client window itself
instead of the parent.

@fix
2015-06-30 18:46:07 -04:00
Mike Blumenkrantz cf332e874c trigger client mouse-in on x11 mouse movement for non-action clients
this should fix the case of mouse-based focus policies trying to reapply
focus after another client has stolen it away without the pointer leaving
the window
2015-06-29 16:08:47 -04:00
Mike Blumenkrantz 9e5c227689 trigger fake mouse-out on clients when unsetting focus
this will allow a more reasonable determination of pointer location
when attempting to apply mouse-based focus policies
2015-06-29 16:08:47 -04:00
Mike Blumenkrantz d9b6e25075 add E_Client->mouse.in for determining mouse-in status 2015-06-29 16:08:47 -04:00
Mike Blumenkrantz c8cedae301 unset changes.visible when forcing visibility during no-effect desk flip
this is set for new clients and creates visibility issues on startup
2015-06-29 16:04:43 -04:00
Mike Blumenkrantz a491a3fa9e fix focus FIXME regarding focus-setting on clients from other desks
fix T2259
2015-06-29 16:04:38 -04:00
Mike Blumenkrantz a416f96c12 check for possible parent window on x11 mouse button events
in the case of different window <-> event_window, window is a child window
of event_window, and thus checking event_window here is valid (and necessary)
2015-06-29 16:04:33 -04:00
Mike Blumenkrantz 84ba19d576 stop rejecting possibly-valid x11 focus events
fixes case where window assumes focus without wm interaction
2015-06-29 16:04:26 -04:00
Mike Blumenkrantz 0829f90eb3 only apply deskmirror client visibility logic for non-deleted clients 2015-06-19 14:13:17 -04:00
Mike Blumenkrantz 1e5eea91ee return an accurate value for override clients in e_comp_object_util_zone_get() 2015-06-17 15:59:23 -04:00
Mike Blumenkrantz 0060387189 allow layer-blocked clients in deskmirror to restack 2015-06-16 15:52:02 -04:00
Mike Blumenkrantz cb8f26ad87 fix eo errors for ilist icon select state 2015-06-08 15:01:28 -04:00
Mike Blumenkrantz 3813d00653 fix shelf visibility state signals
previous behavior resulted in hide being sent when animations began
instead of at end
2015-06-08 15:01:28 -04:00
Mike Blumenkrantz 3fc585efa3 fix focusing client on mouse events which trigger actions (with exceptions)
block focus events only if focus has changed to another client or the current
client's layer-actual has been lowered

regression from 719b2baeba
2015-05-21 12:32:40 -04:00
Mike Blumenkrantz 88cb4541bd allow new fullscreening clients to replace current nocomp where applicable 2015-05-18 13:22:53 -04:00
Mike Blumenkrantz faf4ec630c force xwindow stacking to obey nocomp policy and stack below current nocomp
fix T2277
2015-05-18 13:22:26 -04:00
Mike Blumenkrantz 2b1b6def72 reject client fullscreening based on config and desk visibility 2015-05-18 13:21:45 -04:00
Jean Guyomarc'h 35bba6b6c0 e_ipc: fix creation of IPC server when $DISPLAY is a path
Summary:
Some implementations of the X server (e.g. Xquartz) define their $DISPLAY
as a path. Since ecore_ipc_server_add() does not create non-existant
directories, and since it may not worth to hide the socket in a complex
path, this patch aims at reducing the $DISPLAY by only keeping its basename.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2465
2015-05-02 10:05:30 -04:00
Mike Blumenkrantz f28eec002a prune module config list when loading a module
it's somehow possible to get multiple instances of a module in the config.
since I don't know whether this is a current or past problem, prune the list
on every module load to remove subsequent instances of the module

fix T2181
2015-04-30 17:07:55 -04:00
Mike Blumenkrantz 829ecc3cc0 try hicolor icon theme as fallback for fdo icon setting if user's theme fails
fix T2142
2015-04-30 14:16:48 -04:00
Mike Blumenkrantz 21536ffa96 force visibility on clients before attempting to hide them
this ensures that edje visibility states get reset in the event of toggling
visibility extremely quickly

probably fixes T2260
2015-04-29 22:08:34 -04:00
Mike Blumenkrantz 7a028f37f3 only apply mouse down focus events if a binding did not run on the same event
fixes the case of enabling "raise on click" and also having a mouse binding
for "lower on click" active

fix T2364
2015-04-29 22:08:26 -04:00
Mike Blumenkrantz aa71cd734c freeze evas events on clients during keyboard move/resize actions
fix T2112
2015-04-29 22:08:22 -04:00
Mike Blumenkrantz 19c652e069 rename client menu move/resize items to indicate real function
ref T2112
2015-04-29 22:08:18 -04:00
Carsten Haitzler cbe533c848 e client - desk wait - ref it properly and clean up delfn
delfn's on desks being referred to as profile.wait_desk were never
cleared when client was freed. als the desk itself never got an obj
reference - fix that and ref/unref it.
2015-04-28 12:29:54 -04:00
Carsten Haitzler cd04374949 e - xsettings - calloc buffer since we leave 3 of 4 bytes unset
the first 4 bytes is a msb/lsb thing for xsetttings - we ignore 3 of
the 4 bytes. thus we should just calloc the whole buffer to ensure its 0
2015-04-28 12:29:49 -04:00
Mike Blumenkrantz 187608ba7a use client geom for comp object centering functions if ec->new_client is set 2015-04-28 12:27:33 -04:00
Mike Blumenkrantz 85e9c985b0 ensure client max w/h props are set before applying them to client geom 2015-04-28 12:24:19 -04:00
Carsten Haitzler 7c868b5be1 e_shelf - check visiblity with zone and desk FIRST not later
es->cfg->desk_show_mode if false (default) implies a shelf is always
visible - true, as it's sticky (visible on all desktops). but this
didn't check zone. check zone first THEN this.
2015-04-28 12:23:14 -04:00
Mike Blumenkrantz 3807b38b72 fix submenu visibility during scroll
sometimes while quickly moving the cursor through menu items with submenus
the visibility flag would toggle more quickly than the menu object's visibility.
this is no longer the case
2015-04-20 18:09:36 -04:00
Mike Blumenkrantz f5273475eb clear app menu cache any time a desktop is edited internally
ref T2271
2015-04-20 16:06:21 -04:00
Mike Blumenkrantz a312cc2429 add function for clearing app menu cache
ref T2271
2015-04-20 16:06:20 -04:00
Mike Blumenkrantz 92d8abd38c use client geometry for starting unmaximize calculations
the resize operations in this function operate off client geometry, so
stop using frame geometry

fix T2170
2015-04-20 15:34:37 -04:00
Mike Blumenkrantz 5f5786ab50 fix nocomp_override conditional which would inaccurately toggle nocomp
hooray gcc 5.0
2015-04-14 20:38:43 -04:00
Mike Blumenkrantz facd645829 set E_Exec_Instance desktop during client idler if none present
ref T2284
2015-04-13 16:22:32 -04:00
Mike Blumenkrantz 4207c1240e raise deskmirror windows on startup
these get added bottom -> top on creation, so ensure that they are raised
2015-04-09 14:21:01 -04:00
Mike Blumenkrantz 2091ef60d8 always lower e_layout children upon packing
fixes issues where a new child added would appear above other child objects
if the new child was meant to be stacked below other children

mostly noticeable in deskmirror
2015-04-09 14:20:59 -04:00
Mike Blumenkrantz 66da90fa0f remove layer setting from deskmirror
smart child objects can't have layers. apparently.
2015-04-09 14:20:56 -04:00
Carsten Haitzler 666da6ab83 e clients - make sure we handle client with a NULL zone 2015-03-11 16:05:52 -04:00
Mike Blumenkrantz 31bf6cb7e6 don't modify pixmap hash when changing pixmap parent window
moderately certain I originally wrote this to work in the other direction
and then failed to remove it when I switched to setting parents instead of
children. regardless, pixmap hash should not be changed here
2015-03-11 16:03:27 -04:00
Mike Blumenkrantz 5e48e67b23 fix crash when using e_comp_object_util_center_pos_get() with non comp_objects 2015-03-06 18:57:37 -05:00
Mike Blumenkrantz baf9640ef5 fix horizontal/vertical smart maximize
fix T2170
2015-03-06 17:18:15 -05:00
Mike Blumenkrantz d3d4cbd616 use stderr messages when failing to init X compositor
can't show error dialogs when we're about to exit, may as well print something useful

fix T2182
2015-03-06 15:02:20 -05:00
Mike Blumenkrantz 28d85ea90a exit immediately if any unrecognized arg is passed on startup
ref T2182
2015-03-06 15:02:13 -05:00
Mike Blumenkrantz 35e1e2488f never resize client clip object 2015-03-04 17:08:23 -05:00
Mike Blumenkrantz 1d4f7027a4 set ec->fullscreen before applying fullscreen geometry 2015-03-04 17:08:22 -05:00
Carsten Haitzler e7924ad814 e - menus - fix submenu popup direction when zones are not at 0 y 2015-02-25 15:48:58 -05:00
Carsten Haitzler df7a245f55 e - menus - fix autoscroll on zones not at 0 y... 2015-02-25 15:48:53 -05:00
Carsten Haitzler 1815275df5 efm - make dir listing far faster - no file magic content and dont sync
this speed sup dir listing in efm drastically. first the e fm back end
uses an io thread that just spools through everything fast and sends
it over the mainloop to then send by ipc to e.

and on the e side we no longer use the heavy file internal magic using
api calls that wander all over a file for magic numbers - this is
insanely slow and brings listing to a crawl.
2015-02-24 13:09:05 -05:00
Mike Blumenkrantz 577a577dbd don't clamp bgpreview vsize if bgpreview is a fullscreen overlay 2015-02-23 17:34:42 -05:00
Mike Blumenkrantz f7c07dd086 fix dialog sizing when icon setting fails 2015-02-23 16:54:00 -05:00
Mike Blumenkrantz 800ec5eaa3 do not reapply focus on canvas object ungrab/close for pointer-focus enthusiasts 2015-02-20 09:56:15 -05:00
Mike Blumenkrantz c15e0848b5 revert some comp object debugging bits that snuck into another commit 2015-02-19 11:13:46 -05:00
Mike Blumenkrantz 2d4929e68e rename extremely frustratingly-named E_Screen_Limits enum and members
this came in a patch that I take full responsibility for not adequately reviewing at the time.
the names are confusing and counterintuitive, and it does not properly include the client namespace.

backported to avoid future backport conflicts
2015-02-18 18:56:18 -05:00
Mike Blumenkrantz 7ea12ff367 clamp client size to screen when client limit policy does not allow offscreen
fix T1779
2015-02-18 18:38:39 -05:00
Mike Blumenkrantz 9567acde42 don't send unfocused signal to override clients
fix T2099
2015-02-18 16:36:11 -05:00
Mike Blumenkrantz f06634622a use direct path for setting icons in util theme set function when icon is a path
fix T1888
2015-02-18 16:14:54 -05:00
Mike Blumenkrantz 5b84c92f12 block linear desk flips that would wrap if desk flip wrapping is disabled
fix T1948
2015-02-18 16:14:49 -05:00
Vincent Torri 3bdc2ebbba add MIN define for non-linux systems 2015-02-15 17:54:25 -05:00
Carsten Haitzler 257118514e e - client list update after adding to client list - fix netwm bug
this fixes T2029
2015-02-12 23:14:59 -05:00
Carsten Haitzler 20cf69893e maximization bug affecting libreoffice and others - fix
the problem is something changes window gravity... what i don't know,
but hey - just forcibly move window to 0,0 which is where we expect it
anyway when resizing.

@fix
2015-02-12 23:14:52 -05:00
Mike Blumenkrantz e7f995294a ensure no duplicate XDG paths are prepended during startup
the previous patch(es) had a number of issues which made them unsuitable for general use:

* only checking "/usr" and "/usr/local" paths, despite this only being accurate if e was installed into /usr or /usr/local

* only checking if the paths were at the beginning of the string, when it's possible that they could be anywhere

* failure to also check XDG_CONFIG_DIRS

* improper formatting: this is a bit of a nitpick, but there are no correct instances of 'strcmp(a, b) == 0' in the e codebase.
2015-01-29 16:07:04 -05:00
Mike Blumenkrantz 1359adbbbd continue to hide window input regions on desk flip if they are shaded 2015-01-23 14:26:59 -05:00
Carsten Haitzler 88319af396 comp base - make base black. makes for better screenshots of blank areas 2015-01-20 21:52:39 -05:00
Mike Blumenkrantz 4d04162470 don't set deskmirror scale for non-mb objects 2015-01-15 17:18:07 -05:00
Carsten Haitzler 023516621e e - force a config flush before sys actions that could kill e
@fix

this should fix T1988. after some looking here is what i think is
happening. he is asking the system (sysvinit or systemd) to
halt/reboot, but these end up killing the e process before it can save
its config that is lurking around still in ram as opposed to on disk,
so puttting in a config flush before beginning such a system action
will ensure everything is on disk.
2015-01-13 23:03:32 -05:00
Mike Blumenkrantz 23e37eed8a fix build from tarball when configured mount backend is different from origin
previously the generated e_fm_shared_types.h file was wrongly distributed with the rest of the source tree when it should not have been
2015-01-11 12:58:17 -05:00
Mike Blumenkrantz f7701ff905 don't change shade.x/y during unshade or after shade
fix T1930
2015-01-08 18:23:48 -05:00
Mike Blumenkrantz 0d32652545 check focus after X nocomp end
fix T1768
2015-01-08 18:23:46 -05:00
Mike Blumenkrantz be0d07877e add E_VERSION_MAJOR define for external module usage
this should simplify writing modules with conditional code for different versions of e
2015-01-05 15:51:35 -05:00
Mike Blumenkrantz 963d033699 disable client stack debugging
this should have been turned off for e19 release but I forgot
2015-01-05 15:51:11 -05:00
Mike Blumenkrantz 7570d8809e completely block border changes on MWM borderless windows
ref T1963

seriously.
2015-01-03 00:44:19 -05:00
Mike Blumenkrantz f53936eaba don't set gravity on client windows during X move/resize
fix T1940
2015-01-03 00:44:17 -05:00
Chris Michael 5390c49803 bugfix: Fix e_notification file having missing initializers for Eldbus
Messages & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:39:39 -05:00
Chris Michael 0b5ea1f5c2 bugfix: Fix e_msgbus file having missing initializers for Eldbus
Messages & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:39:34 -05:00
Mike Blumenkrantz c3e86c328d comp pending resizes should not require both w+h to change 2014-12-31 15:39:06 -05:00
Chris Michael a3c7ebc28d call e_powersave_init Before we call e_screensaver_init because the
init of e_screensaver sets up an event handler for the
powersave_update event (which would be 0 unless powersave is init
first).

Thanks to dt9 for the report ! ;)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-18 11:40:12 -05:00
Carsten Haitzler 9df2d5f016 Revert "Randr: Fix null dereference."
This reverts commit 4aef218d28.

Revert "randr: remember crtcid for fast lookup on reconnect"
This reverts commit 55b4ad41d1.

Revert "randr: further cleanup"
This reverts commit 3e02824663.

these make nvidia randr resolution changing work again. sorry seb.
even though cleanups might be nice... this code is FIDDLY and every
driver seems to work differently, so take it easy and be very careful
- make no assumptions. i know it works on my intel desktop and nvidia
deskop atm. once i get a vga cable i'll fix up intel laptop with
external display that has problems. i can try radeon too later. but
right now - this stuff needs to work. being clean is far less
important than working. :)
2014-12-16 19:49:23 -05:00
Carsten Haitzler 19621ec426 Revert "randr: Don't track active outputs"
This reverts commit 01f43e3618.

this broke nvidia randr - i cant tunr my screens on or off anymore.
2014-12-16 19:49:21 -05:00
Tom Hacohen 88a0872760 Randr: Fix null dereference.
CID1181926
2014-12-16 16:44:01 -05:00
Sebastian Dransfeld 569eff8750 randr: Don't track active outputs
Remove tracking of active outputs to reduce code complexity.
2014-12-16 16:44:01 -05:00
Sebastian Dransfeld c4dc8c8f04 randr: TODO++ 2014-12-16 16:44:00 -05:00
Sebastian Dransfeld 2ca7a20d85 randr: remember crtcid for fast lookup on reconnect
When an output is set inactive, it is disconnected from a crtc. Now we
remember the id of the last crtc it was connected to, so we get a faster
lookup on reconnect.
2014-12-16 16:44:00 -05:00
Carsten Haitzler 38adb8db89 e randr - restore edp checks
the dp checks were looking for edp stuff. but due to naming they appeard as
eDP or maybe edp or EDP - thus were simplified to dp. put more explicit
checks there.
2014-12-16 16:44:00 -05:00
Sebastian Dransfeld 33d5ebb9fa randr: Don't match DP as LID
On my intel laptop DP are my DisplayPort connections, not LID.
2014-12-16 16:44:00 -05:00
Sebastian Dransfeld cd94ed7052 randr: further cleanup
Primarly two things removed:
1. crtc->outputs should only contain outputs which should be enabled
So looping them twice in e_randr_apply is definitly wrong.

2. _e_randr_crtc_find should find a crtc for an output
So looping our crtcs again in _active_set is definitly wrong. If
_e_randr_crtc_find does not find us a crtc, it should be fixed there.
2014-12-16 16:44:00 -05:00
Carsten Haitzler 71cb5462ba e randr - make it work on nvidia - lots of "wrong" things fixed
i've spent a while testing randr on my nvidia box and drviers. it now
works - i can turn screens on and off. i couldn't before. e_randr was
trying to be too smart for its own good. it wasnt matching up outputs
to crtcs, was thinking outputs active when they were not, etc. etc.
etc. - reality is e_randr could do witha  lot of simplification, but
at this stage i'm just going to hammer it into shape to work across as
many drivers and setups as i can test against.
2014-12-16 16:44:00 -05:00
Marcel Hollerbach 367eea52ec Register the new window into out evas.
Summary:
Otherwise the mouse up event is emitted to the evas but the evas does
not work with it, because it does not know the window it is from. This
leads to a evas_event_down_count_get bigger than 1 which leads to a
missing mouse_out event. With this missing mouse_out event _post_up_handle
in evas_event.c is not called anymore, this means all the click events
are getting emitted to the object which was last clicked.

This fixes T1894.

Test Plan: Drag and Drop a icon somewhere and click somewhere after that, the evas will not get stuck anymore

Reviewers: raster

Subscribers: cedric, abyomi0, zmike, raster

Maniphest Tasks: T1894

Differential Revision: https://phab.enlightenment.org/D1771
2014-12-13 09:18:25 +01:00
Mike Blumenkrantz 4da2b0885f apply client size based on correct remember value, only apply if value != 0
ref T999
2014-12-08 17:08:00 -05:00
Mike Blumenkrantz fc16acfb4a remembering size on a window should also remember maximize state 2014-12-08 17:08:00 -05:00
Mike Blumenkrantz 6d7ecefa02 greatly reduce FAILURE_MAX
ref T1820
2014-12-08 17:08:00 -05:00
Mike Blumenkrantz 9d1a3ad45b reduce shape recalc for clients which cannot currently receive input 2014-12-07 20:24:09 -05:00
Mike Blumenkrantz 0d2001013f redo shaped client checks to use shape flags instead of rect pointer, fix shapeless clients
according to the shape extension protocol, the number of rectangles returned should be checked to determine a client's shape. if 0 is returned, the client has no shape, meaning that it either should not be drawn or should have no input region. this improves behavior with various client window types such as tooltips

ref T1820
2014-12-07 20:18:27 -05:00
Mike Blumenkrantz 6f024d3abf add failure count for client rendering, drop clients after FAILURE_MAX tries
this traps clients which are showing and hiding themselves extremely quickly and prevents them from crashing us when we try to draw them

fix T1820
2014-12-07 20:18:27 -05:00
Mike Blumenkrantz e0969644d6 fix X crash when trying to apply desktop window profile to client without desk 2014-12-07 20:18:27 -05:00
Mike Blumenkrantz e3b993a332 ensure clients are visible before triggering shape/render queue 2014-12-07 20:18:27 -05:00
Carsten Haitzler b656546184 e randr - fix warning (signed vs unsigned cmp) 2014-12-05 13:58:10 -05:00
Carsten Haitzler b84c0fe11d e - randr - stop saving config using XID - this is utterly WRONG
so e was storing randr config using XIDs to match outputs etc. this is
all kinds of wrong. XIDs are NOT STATIC. they change from xserver to
xserver and from run to run. they MAY be the same. they may not. so
this was just broken.

use output name + edid as a big "string" (name.edid) as a way ofr
identifying config for a specific combination of output plus monitor
and to find/identify the corrent output+monitor to apply it to (of
course missing edid gets replaced with ??? and missing output name is
??? too - i have never seen a missing output name so you get this at
least).

so this FIXES "restore" of screen mode on login for starters. this
does nothing to "fix" the screen setup dialog in any way. there are
separate issues there.

this also breaks e_randr config compat so i bumped epoch so your old
config is rejected. i don't see a sensible way of porting the config
forward.
2014-12-05 13:57:56 -05:00
Mike Blumenkrantz 4dc20f5c85 attempt to run eeze_scanner on failure to connect, not successful connect
ref T1612
2014-12-05 13:56:32 -05:00
Mike Blumenkrantz 7e3b22dacc only attempt to start eeze_scanner a couple times before giving up
ref T1612
2014-12-05 13:56:32 -05:00
Mike Blumenkrantz b75e419086 store eeze_scanner connection poller to avoid creating an infinite number
ref T1612
2014-12-05 13:56:31 -05:00
Mike Blumenkrantz 0a95e6e117 don't exit e_fm when eeze init fails, send RASTER mode instead 2014-12-05 13:56:31 -05:00
Mike Blumenkrantz ae5ac60dca print more descriptive error messages when scanner connection fails, also don't exit() here
ref T1612
2014-12-05 13:56:31 -05:00
Mike Blumenkrantz 50f5b74cd8 apply pointer warp effects immediately when instant warping
fix T1462
2014-11-28 15:07:32 -05:00
Mike Blumenkrantz 1106200675 set skip pager/taskbar hints on parent window instead of client window
this is a change in behavior as compared to E17-E18 where any setting of related flags would alter the client hints

ref T1692
2014-11-25 15:04:21 -05:00
Marcel Hollerbach b2f576965d Fix wrong deskshow function
Summary:
The loop E_CLIENT_REVERSE_FOREACH was used to iconify and uniconify the
icons. The worked well for uninconify.

But if the first client with the focus gets iconifyed the lower one in
the stack will get the focus and will be raised to the top, but the loop
will continue with the next of the now iconifyed e_client, so this one
will be skipped.

Now the forward loop is used to iconify and the reverse to uniconify the
e_clients.

This fixes T1797

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, cippp

Maniphest Tasks: T1797

Differential Revision: https://phab.enlightenment.org/D1655
2014-11-12 21:01:32 +01:00
Mike Blumenkrantz f9370f013e fix internal window border changing 2014-11-03 17:04:14 -05:00
Carsten Haitzler c8d16cdef6 e_auth - null out compilert memset opts like lokker 2014-11-03 17:03:42 -05:00
Mike Blumenkrantz 4374a04e2e client hooks should not continue to be called if the client has been deleted 2014-09-23 13:18:01 -04:00
Mike Blumenkrantz d4e289727a force comp render queue more aggressively to detect changes in nocomp 2014-09-23 10:31:25 -04:00
Mike Blumenkrantz 16f3595f7d comp render queue on every client resize instead of on unmaximize 2014-09-23 10:31:24 -04:00
Mike Blumenkrantz 349a9f5262 add borderless theme for deskmirror clients to support various animations 2014-09-18 18:23:43 -04:00
Mike Blumenkrantz 309ff82429 force render queue on unmaximize if client was fullscreen
fix T1665
2014-09-18 11:52:46 -04:00
Mike Blumenkrantz 7003b3ed08 end nocomp on nocomp end...always 2014-09-16 11:07:13 -04:00
Mike Blumenkrantz 351bde444c manually break out of nocomp
in the event that there was only one window open and it was closed, this would permanently break the compositor

fix T1665
2014-09-16 11:07:08 -04:00
Mike Blumenkrantz 9b8a6df115 check protocol visibility for nocomp breaks, not comp object visibility
new comp objects are never going to be visible during nocomp
2014-09-16 11:07:02 -04:00
Mike Blumenkrantz 72366e49f9 don't add nocomp damages for input-only windows 2014-09-16 11:06:59 -04:00
Chris Michael 1cd25a1595 Revert "bugfix: When we free the pixmap, clear any user data set on the resource"
This reverts commit b41dbbe9cf.

Revert this ... it works, but it's not the "proper" fix as it just
causes the crash(s) to happen elsewhere ... time to dig deeper
2014-09-10 10:24:07 -04:00
Chris Michael b41dbbe9cf bugfix: When we free the pixmap, clear any user data set on the resource
This was a cause of some memleaks/crashes in the wayland compositor
because the compositor was trying to access properties of the E_Pixmap
after it had already been freed. By setting the user_data to NULL, the
functions in the compositor which were failing will now stop trying to
access the pixmap after it's been freed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-10 09:49:53 -04:00
Mike Blumenkrantz ec1cd25cfe rename E19* defines/texts to just E so they don't need to keep being updated 2014-09-09 12:30:50 -04:00
Stefan Schmidt 452048354d e_fm: Include config.h to know about HAVE_UDISKS_MOUNT
We are checking for the various mount options here given by configure.
-Wundef showed that we might not have the defines right so better
include config.h here.
2014-09-09 10:44:21 +02:00
Mike Blumenkrantz 20a5b2bc18 fix nocomp skipping for skippable objects
fix T753
2014-09-08 09:12:21 -04:00
Mike Blumenkrantz 0cf20e5407 fix e_randr double comparison warnings 2014-09-07 23:02:38 -04:00
Mike Blumenkrantz a69a5a1796 add dblequal() util function to be used for addressing the infinite comparison warnings 2014-09-07 23:02:32 -04:00
Mike Blumenkrantz 93e0dd20c0 add docs for all the comp_object data keys 2014-09-07 12:49:19 -04:00
Mike Blumenkrantz a81707a507 throw CRI on e_object type errors 2014-09-07 12:35:50 -04:00
Mike Blumenkrantz 0028c7aea3 fix client positioning when initial position is offscreen or size is huge
ref T1571
2014-09-07 12:35:45 -04:00
Mike Blumenkrantz 30bd5e4a0d remove misleading old comment 2014-09-07 11:45:31 -04:00
Mike Blumenkrantz 0988340f81 add another main loop iteration after resuming for desklock visibility
fix T1498
2014-09-07 11:15:17 -04:00
Mike Blumenkrantz 7448e3706c simplify eeze backlight detection 2014-09-07 09:25:16 -04:00
Mike Blumenkrantz 1c9d1b2de1 only default to led subsystem backlight if it isn't a mail or kbd device
fix T1497

do backlights with subsystem=leds still exist or have they fixed that yet?
2014-09-07 09:25:16 -04:00
Chris Michael 7645f39446 remove useless return
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-05 15:52:09 -04:00
Mike Blumenkrantz 721dfe82c2 add e_auth_hash_djb2 inline
all eina hash functions are now useless for any case where the hashed value needs to be stored, so it's necessary for e to provide its own hash function to use for password storage
2014-09-05 15:02:10 -04:00
Mike Blumenkrantz 6318fd042b add short path to ensure ConfigureNotify event after request
fix T1485
2014-09-05 15:01:52 -04:00
Mike Blumenkrantz 33ff637a7c fix pointer crashes from wrong #ifdefs in 1f439893f1 2014-09-05 14:29:39 -04:00
Mike Blumenkrantz fdcd207323 clean up function/macro use in e_pointer 2014-09-05 14:27:59 -04:00
Chris Michael 2b8d76747d Revert "bugfix: Set pointer timer & poller members to NULL after we delete the"
This reverts commit bb2dab1a5d.

Revert this because the macro already sets the pointers to NULL.
2014-09-05 12:27:01 -04:00
Chris Michael bb2dab1a5d bugfix: Set pointer timer & poller members to NULL after we delete the
timer/poller

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-05 11:40:00 -04:00
Stefan Schmidt 47d2987208 e_module: Remove dead code after return statement.
Never executed as we retrun before in any case.

CID 1039762
2014-09-05 14:25:15 +02:00
Stefan Schmidt c281d6da82 e_alert_main: Don't monitor in E in wayland only mode to avoid endless restarts
When running in Wayland only mode we don't have XCB available so a
xcb_connection would fail and we would restart endlessly.

I have been bitten by that often enough now. Better shutdown E cleanly and don't
use the watchdog functionality for now. This needs a wayland specific solution
anyway.
2014-09-05 12:12:13 +02:00
Stefan Schmidt 99f9244d1c e_comp_wl: Remove unused variable and mark parameter as unused. 2014-09-05 11:54:45 +02:00
Chris Michael ffe713d0df bugfix: use existing compositor canvas pointer as the windows pointer
when doing wayland windows (internal dialogs), and in such a case
don't free the window pointer on window hide/destroy.

NB: This fixes the case when running wayland-only and dialogs would
actually show 2 pointers.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 15:55:18 -04:00
Chris Michael 1f439893f1 bugfix: handle case of pointer_xy_get being called if we are not
wayland-only and also not working with an X client.

bugfix: Fix case of pointers_size_set not adjusting pointer structure
fields with new size when rendering wayland pointers.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 15:51:46 -04:00
Chris Michael b92b34621c e-comp-wl: Remove blank line
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 12:50:41 -04:00
vivek ded8356fc7 e_comp_wl: Handle surface opaque region in subsurface commit from cache
Summary: When we commit a subsurface from cache, we should adjust the
client's shape rectangles so that they get applied when rendering.

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1412
2014-09-04 12:49:54 -04:00
Igor Murzov aba7a8c9d5 Improve messages in bindings configuration dialogs 2014-09-03 18:04:19 +04:00
Mike Blumenkrantz 5733e7b3f7 non-client comp object creation checks "noshadow" edje flag on passed objects
returns theme functionality from e17
2014-09-03 09:46:27 -04:00
Mike Blumenkrantz 8a10f288ad use a non-conflicting data item for comp mirror creation 2014-09-01 14:22:44 -04:00
Mike Blumenkrantz 74c3e0a979 shorten rendering path when creating comp mirrors from comp mirrors 2014-09-01 13:55:02 -04:00
Mike Blumenkrantz 77c63e0387 redo comp object util refs to be more consistent and not break evas 2014-09-01 10:30:53 -04:00
Mike Blumenkrantz 44545b53a9 don't break nocomp for client activate requests 2014-09-01 10:30:53 -04:00
Mike Blumenkrantz cdaa53fc8f only add damages for nocomp clients if they are protocol-visible 2014-09-01 10:30:53 -04:00
Mike Blumenkrantz e949fcc077 only use pixmap size shortcut on non-internal clients
this gets broken pretty easily since we resize all over the place
2014-09-01 10:30:53 -04:00
Mike Blumenkrantz 79b1f37a36 fix stupid pixmap refresh logic 2014-09-01 10:30:53 -04:00
Davide Andreoli 54e039c0ac Fix gadcon popup to reposition correctly on size changes
None was setting the visible flags, that is checked before reposition the popup
2014-08-31 15:34:36 +02:00
Gwanglim Lee 00690dab17 added mobile policy module
Summary: mobile policy module provides user interface for small mobile devices like phones.

Test Plan: N/A

Reviewers: raster, devilhorns, zmike

Subscribers: seoz, zmike, cedric

Differential Revision: https://phab.enlightenment.org/D817
2014-08-29 13:48:01 -04:00
Seunghun Lee e3f4f0f976 set the maximized valuable of E_Client before calling _e_client_frame_update when unmaximize the client.
Summary: since maximized valuable is used in _e_client_frame_update, so the valuable should be updated.

Test Plan:
(1) run any application.
(2) Maximize the app by key binding.
(3) Change the border type.
(4) Unmaximize the it by key binding.
(5) try to maximize it again, but couldn't

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1357
2014-08-29 13:46:25 -04:00
Mike Blumenkrantz 7b8ad92604 set X pixmap size on client init 2014-08-28 13:30:07 -04:00
Chris Michael e8b3be70ab fix dnd compiler warnings when building for wayland-only
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 12:36:02 -04:00
Chris Michael 18f5337fa3 fixed backlight compiler warnings when building for wayland-only
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 12:33:10 -04:00
Chris Michael 8e4a45a40e fix e_screensaver_update compiler warnings when building for
wayland-only

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 12:30:29 -04:00
Chris Michael 46e960397d fix unused variable if building for wayland-only
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 12:22:09 -04:00
Chris Michael 3edef4a1a8 remove call to show pointer during canvas_new function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 12:10:09 -04:00
Chris Michael 7f9eefbd7b destroy pointer when destroying window since we create new pointers
for every window again.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 11:40:19 -04:00
Chris Michael e9807c5ba7 add fixme note
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 11:40:19 -04:00
Chris Michael 63b5da69f0 fix pointer for stupid X11...but this breaks pointers in wayland (for
now) :(

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 11:10:07 -04:00
Chris Michael 6440aa513f create window pointer based on compositor type
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 11:08:36 -04:00
Chris Michael 28b512d5a7 fix X compositor to use e_pointer_window_new
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 11:01:46 -04:00
Chris Michael 88e61f09cc add back 'pixels' field structure for pointer
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 11:00:22 -04:00
MinJeong Kim 73ce914020 Check whether attached buffer exists, before using it.
Summary:
Because attached buffer can be NULL for removing surface content,
check of pending.buffer should be done before getting resource value of the buffer.

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1370
2014-08-27 08:26:38 -04:00
Jérémy Zurcher 25aabe7aa7 add missing 'pragma GCC diagnostic push' 2014-08-27 09:22:27 +02:00
Chris Michael 6b56465bac use a new e_pointer for the window canvas
This fixes an issue where internal dialogs were not using the e
cursors but would default back to an x cursor

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 14:36:57 -04:00
Chris Michael 7840d11459 be sure to send the wl_data_device_send_enter when changing surface
focus and add some more debugging for dnd

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 14:11:28 -04:00