Commit Graph

96 Commits

Author SHA1 Message Date
Mike Blumenkrantz 9f99812d1d ignore configure events on layer marker windows 2014-05-10 17:18:08 -04:00
Mike Blumenkrantz 044edb7925 only use e_exec's vdesk if client does not use its remember's vdesk 2014-05-07 21:36:25 -04:00
Gwanglim Lee a5bd16603f e_comp_x: fix black area of override redirect win
Summary:
Black area of override redirect window could send damage notify which has unwanted xy position.
(a) Skip x configure notify with 3,55 316x162 of override redirect win
(b) Handle x show notify: create a new client and x damage for override redirect win
(c) Handle x damage notify with 3,55 316x162

To resolve it, E discards unwanted xy position of first damage for override redirect window.
This fixes remained problem of T1180 and T1188.

Test Plan:
1. Run e with sw engine mode
2. Run pcmanfm
3. Select menu in pcmanfm
4. Check whether menu window has black area

Reviewers: raster, zmike, devilhorns

CC: cedric

Differential Revision: https://phab.enlightenment.org/D800
2014-04-26 13:17:13 -04:00
Carsten Haitzler bdc3d5b5e3 formatting 2014-04-18 09:39:16 +09:00
Wonguk Jeong fb437cd1b0 comp_x_screensaver: screensaver off bug fix
Summary:
Can not turn off screensaver due to condition check bug.

@fixes

Test Plan: enlightenment -> do nothing -> screen saver on -> mouse/key input -> check whether screen saver is turned off or not

Reviewers: raster, cedric, zmike

Reviewed By: raster

CC: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D766
2014-04-18 09:35:45 +09:00
Carsten Haitzler cf90b84a42 fix screensaver/blanking issue where a ss on/off events come in together 2014-04-17 13:55:39 +09:00
Mike Blumenkrantz 114b411da1 never use new clients for stacking
fix Tcedric
2014-03-27 21:27:51 -04:00
Mike Blumenkrantz e49b3beff1 ensure minimum X parent window size of 1x1
fix T1098
2014-03-27 16:47:19 -04:00
Mike Blumenkrantz 3f10e7557f ignore X layer window mouse events
fix T1130
2014-03-27 16:47:19 -04:00
Mike Blumenkrantz c04d754ac5 enabling drm output module should NOT require X-less build.
these defines all need to be changed from HAVE_WAYLAND_ONLY to something like WITH_X or we're going to have lots of problems with xwayland later on
2014-03-18 16:14:04 -04:00
Mike Blumenkrantz a2025ddaad ignore size change configurerequests during maximize if not also changing position
correcty fixes gtk window (un)maximize
2014-03-17 12:56:21 -04:00
Mike Blumenkrantz 865dc17221 null check client on X stack request
CID 1155287
2014-03-13 12:05:13 -04:00
Mike Blumenkrantz ae81d76a3c ignore ignored clients for X mouse events
fix T1058
2014-03-06 09:35:00 -05:00
Mike Blumenkrantz 9ad04eb877 redo client urgency again with separate flag for actual urgent state
preserve icccm flag for accurate detection
2014-03-05 10:08:09 -05:00
Mike Blumenkrantz 54999472de force full rerender on present pixmap size change
a new X extension should make this unnecessary in the future for pixmap resizes, but for now it seems to be a necessary evil

fix T993
2014-02-28 10:48:54 -05:00
Mike Blumenkrantz ef26b0fb1e set client-redirected on overrides 2014-02-26 11:46:31 -05:00
Daniel Kolesa 79f3313931 e_comp_x: reverted 7c20b54 (was fixed in the meantime and i didn't notice) 2014-02-25 20:30:45 +00:00
Daniel Kolesa 7c20b5407a e_comp_x: check for zone before actually using it 2014-02-25 20:16:15 +00:00
Mike Blumenkrantz eca0549238 only set atoms for zone geometry for non-ignored clients
another T787 crash
2014-02-25 14:38:08 -05:00
Mike Blumenkrantz aec20f1420 force full render on present events during startup 2014-02-21 16:44:12 -05:00
Mike Blumenkrantz e7127a93ff don't set input shape differently on shaped_input clients
T931
2014-02-10 09:45:53 -05:00
Mike Blumenkrantz b97d043b25 assume that if we can't find a requested stacking client (X) it's going to be at the top of the stack
T908
2014-02-06 21:46:12 -05:00
Mike Blumenkrantz 78334b615e more stringshare improvements for window profile, apply window profile if no desk set (impossible?) 2014-02-06 12:59:28 -05:00
Mike Blumenkrantz 569c90e87f e_client_util_is_stacking() -> e_client_is_stacking()
regrettably, this can't be in e_client.x because it needs E_Comp struct members and header order does not allow for this :(
2014-02-05 10:58:57 -05:00
Mike Blumenkrantz 8d71213839 e_client_name_get() -> e_client_util_name_get()
this should be inlined
2014-02-05 10:55:50 -05:00
Mike Blumenkrantz eba912cf6a e_client_resizing_get() -> e_client_util_resizing_get()
functions in e_client.x should be namespaced with e_client_util to indicate that they are inline (and in e_client.x)
2014-02-05 10:51:36 -05:00
Mike Blumenkrantz f4de16df08 don't change zone after moving client
this happens automatically, and with more accuracy, later on
2014-02-03 13:57:45 -05:00
Mike Blumenkrantz 3c436b5c09 bugfix: initial client positioning with multiple monitors improved
this was added a while ago to fix positioning of windows that wanted to start centered but couldn't accurately calculate xinerama screen sizes, resulting in windows getting centered across the screen split. it ended up being a bit too aggressive, however.
2014-02-03 13:03:01 -05:00
Mike Blumenkrantz d293b368b8 bugfix: screen limits policy no longer breaks X client positioning
this has been broken since it was added, and I strongly regret allowing it to be added.
2014-02-03 12:52:35 -05:00
Mike Blumenkrantz d3468dd920 feature: ACTIVATE_EXCLUDE window active hint policy
this option causes window activation requests to only activate a window if it is on a currently visible virtual desktop, otherwise it will be set as urgent. I recall that things may have worked this way long ago...
2014-01-30 12:45:49 -05:00
Mike Blumenkrantz 752c220482 redo X first_damage logic
the main idea here is to not DRAW at the time of the first damage to avoid overdraw, but ignoring the fact that the region is ready to be drawn can be problematic when the drawing eventually occurs. best choice here is to keep the region but not the render update
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz 340e02efb5 ignore non-internal override clients when stacking
this fixes the case where clients will briefly escape normal/expected stacking on startup if an override is visible
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz 53e477a7d0 simplify layer marker stacking setup 2014-01-30 12:12:01 -05:00
Mike Blumenkrantz b6cbacc77e ignore re_manage clients for X object creation events 2014-01-30 12:12:01 -05:00
Mike Blumenkrantz 9d3f47f4f6 ignore deleted clients on comp object add event 2014-01-29 21:12:07 -05:00
Mike Blumenkrantz 7ef4340c3f revert 83397e1bde 2014-01-29 21:12:07 -05:00
Carsten Haitzler b7515a0958 null out damage on free in _e_comp_x_hook_client_del 2014-01-30 11:02:44 +09:00
Carsten Haitzler 83397e1bde fix segv where comp_data is null but still accessed
it seems i have an override-redirect window just off the bottom-right
of my screen - i think its the scim input panel status. what happens
is it is "managed" by comp but then deleted (_e_comp_x_hook_client_del
called), BUT _e_comp_x_object_add is called with a deferred event for
that client to add it again (likely this is a race) which finds he
client in a state of not having comp_data as the E_FREE in
_e_comp_x_hook_client_del() frees it and sets it to NULL. move the
comp_data free to the actual client free (which is the last time a
client is valid at all) solves this.
2014-01-30 08:55:28 +09:00
Mike Blumenkrantz 0ff2a408d3 force stacking for all new X clients during add event
this fixes a race condition when windows open simultaneously and then are stacked under each other: the previous result was that they would end up hanging out at the top of the window stack (above all windows) until another window was raised above them. now they stack as expected
2014-01-28 20:43:19 -05:00
Mike Blumenkrantz 576f0bab2d reject successive attempts to add evas callbacks in X compositor 2014-01-28 20:43:03 -05:00
Mike Blumenkrantz 49d6de3316 send X flush/dump to client window, not parent window 2014-01-28 15:38:40 -05:00
Mike Blumenkrantz 3dd0ea5189 break out client urgency setting into separate api function
this unclutters the client idler a little and also makes it easier to correctly set the urgency hint for clients
2014-01-27 21:35:39 -05:00
Mike Blumenkrantz 8aafbfe6ce X cursor color support doesn't depend on config values 2014-01-27 11:12:56 -05:00
Mike Blumenkrantz 9b2372a798 ignore X configure events where override is not set
this handler is only for dealing with overrides, so if this flag isn't set we're not interested
2014-01-27 10:58:41 -05:00
Mike Blumenkrantz fa33846fe4 force show of X layer markers on startup
this is cosmetic and only quiets some console errors on startup
2014-01-24 18:42:52 -05:00
Mike Blumenkrantz 99dca3c944 set first_damage flag on overrides
some overrides, in very rare cases, seem to only send a single damage. rendering at this point doesn't seem to hurt anything, so I'll give it a shot
2014-01-24 17:44:19 -05:00
Mike Blumenkrantz db31ccc5de unset new_client flag for override windows
this flag is used to block most cwm actions until after the client is past its first loop iteration. overrides, however, don't need to be blocked and will in fact break sometimes (fuck you gtk) as a result

it's worth noting that showing/hiding overrides extremely fast will still break the compositor a little in that I'm not going to render a single frame while constantly playing edje hide/show animations which are longer than the actual render. with animations disabled, however, rendering occurs as expected.

T831
2014-01-24 17:38:27 -05:00
Mike Blumenkrantz 6044fd8a78 force pixmap refresh for overrides, also automatically set pixmap size
override windows don't get PRESENT notifications, apparently, but this can be shortcut anyway by just setting the size from the configure event
2014-01-24 17:36:47 -05:00
Mike Blumenkrantz 57903b7aa3 only send ICCCM move/resize if it isn't already going to be sent 2014-01-24 16:20:21 -05:00
Mike Blumenkrantz c06eca070d send ICCCM move/resize for configure requests on X windows
somehow this got left out of the E19 handler, which broke apps that relied upon such notifications, most notably gnome-terminal
2014-01-24 16:01:01 -05:00