Commit Graph

10430 Commits

Author SHA1 Message Date
Mike Blumenkrantz 106dfe4e21 only attempt to provide wayland drag motion data if drag exists 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 3dca058dfa block wayland mouse button propagation to clients while drag is active 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 9740477615 store global wayland data manager resource 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz aa5788175b move wl compositor function for creating data sources to be external 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 0f070c6683 reenable compositor shape cutting onto the selection window in xwl
this will provide x11 eventing as needed on an already existing window
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz fa75d181d4 block internal usage of x11 input grabs under wayland
these shouldn't be necessary since we control the input
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz dddbe2a518 force mouse-up on wayland drag start
allows mouse eventing to function as expected during drags and provides
updating during the drag
2015-08-05 17:30:03 -04:00
Mike Blumenkrantz f2f4b65ead move menu mouse-up feed util function to E_API in comp canvas 2015-08-05 17:26:50 -04:00
Mike Blumenkrantz b7cc0e07b8 enable x11 dnd in wayland compositors
maximize footgun potential since this currently crashes immediately
2015-08-05 16:07:10 -04:00
Mike Blumenkrantz 53900d184a use pointer hash to track data manager resources 2015-08-04 19:48:45 -04:00
Mike Blumenkrantz 5f6c91a4f4 block screensaver activation during wl dnd operations 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz d4aa1ba7c2 add functionality for blocking wl screensaver activation 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 1beecb72d7 add server-side wl dnd
weston-dnd seems to work as expected
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz bce5283b57 fix wl data device kbd focus function
this should only send the selection offer
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz b5a5e98632 make wl data device util function EINTERN
e_comp_wl_data_find_for_client()
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 965d089c8a add more wl data device debug infos 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 616ca6583e apply wayland data device focus after focus has been set
the focus_set client hook is for setting focus, not for doing things which
must occur after focus has been set
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 6a50d5f581 fix compositor type detection for dnd operations
wayland compositors will always use a compositor grab
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz b33d8bdf10 allow new drags to be created with no associated mime types 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz b011c4a045 reduce explicit ecore-x type usage in e_dnd 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz fa11e0ecd7 further unify drag start functions 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz e5678549da track the current pointer focus client in wayland compositor 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz acf5d09796 reject deleted clients from wl show callback 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 9669dc1dc5 show drag object immediately when beginning a drag
fixes flicker at start of drag
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 2607ad2339 only return xwayland pixmap from e_comp_x_client_pixmap_get() for xwl clients 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 5526bd357a unify most of drag start functions 2015-07-31 15:35:55 -04:00
Mike Blumenkrantz 81a797a0fa defer focus-setting on focus revert during desk flip when visibility is pending
in the case that a client is going to be shown on the next loop iteration,
focus setting must still occur and be deferred

this fixes the case of a window appearing on a desk while the user is switching
desks away from it even though this window is attempting to focus itself
2015-07-31 13:58:29 -04:00
Mike Blumenkrantz 04fe354592 notidle the screensaver in wl compositor mouse move cb
fixes screen blanking while user is active
2015-07-30 16:35:51 -04:00
Mike Blumenkrantz de1d24021b set ELM_DISPLAY appropriately for wayland compositors 2015-07-30 16:29:25 -04:00
Mike Blumenkrantz 847d3fe358 reject internal window moves when they originate from a wl configure event
fixes a number of internal win positioning issues
2015-07-30 16:22:08 -04:00
Mike Blumenkrantz 24ec288b3c remove spurious focus setting on desk flip without animation
focus gets automatically handled in e_desk_flip_end(). changing it
again here will produce unintended/wrong results in some cases

fix T2071
2015-07-29 19:47:49 -04:00
Mike Blumenkrantz 9ad208bfb8 add fallback loading of default theme on init
this should fix cases where whatever the user-set theme is doesn't provide
a required group by filling it in

fix T2210
2015-07-29 17:41:21 -04:00
Mike Blumenkrantz 7848947ea0 Revert "remove unnecessary geometry setting during xwl client swap"
This reverts commit ae1fc10d06.

not unnecessary if the client has already been shown. fixes xwl menus
randomly showing up at 0,0
2015-07-29 15:40:02 -04:00
Mike Blumenkrantz cd0e11c8c3 fix new_client setting on xwl clients during swap 2015-07-29 15:39:39 -04:00
Mike Blumenkrantz 1496b3db7b don't reset wayland surface geometry for overrides 2015-07-29 15:38:17 -04:00
Mike Blumenkrantz 01ba4eea55 end compositor animations for dead clients on hide
fixes a huge object leak in xwayland related to menus
2015-07-29 15:25:22 -04:00
Mike Blumenkrantz e5d367292f return immediately on wayland focus-in key timer when no focused kbds exist 2015-07-28 17:36:13 -04:00
Mike Blumenkrantz c9e35cc0f9 do not call ecore_time_unix_get() on each key sending loop for wayland clients 2015-07-28 17:34:58 -04:00
Derek Foreman fea72d5fcd wayland: Only send keyboard modifiers to focused resources
Summary: We were sending them to anything that bound a wl_keyboard.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2879
2015-07-28 17:12:57 -04:00
Mike Blumenkrantz 8278e20183 reduce delay before running screensaver-off animations in wayland
this feels a bit more natural while still displaying animations after dpms
has finished cycling
2015-07-28 16:58:53 -04:00
Mike Blumenkrantz 42bc9b0bef 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:46:00 -04:00
Mike Blumenkrantz f7ca0b5791 disable x11 mouse eventing in wayland compositor mode
these events are delegated directly by the compositor. anything that
is told to us by x11 may or may not be the case and we shouldn't care
either way
2015-07-28 15:59:19 -04:00
Mike Blumenkrantz 784af9c097 do not create wayland screensaver timer when screensaver is disabled
ref T2609
2015-07-28 12:41:05 -04:00
Mike Blumenkrantz 6faa894a59 block xsettings config update if xsettings has not been initialized
fix T2610
2015-07-28 12:34:05 -04:00
Mike Blumenkrantz db41479414 fix x11 detection for wayland compositor setup
ref T2609
2015-07-28 12:32:50 -04:00
Mike Blumenkrantz 9138b484d1 fix desklock-related screensaver modification
ref T2609
2015-07-28 12:31:22 -04:00
Mike Blumenkrantz c4024acfd2 ensure expected screensaver blanking in x11 compositors with HAVE_WAYLAND 2015-07-27 18:24:34 -04:00
Mike Blumenkrantz 812ceafec6 fix wl screensaver activation when deactivating during fade 2015-07-27 17:32:11 -04:00
Mike Blumenkrantz 376945dcd8 add dpms handling for wayland compositors 2015-07-27 16:54:31 -04:00
Mike Blumenkrantz 9efb05a865 add E_EVENT_SCREENSAVER_OFF_PRE
for hooking dpms changes which occur before animations play
2015-07-27 16:54:01 -04:00
Mike Blumenkrantz 56a73e3c67 add dpms method for E_Comp_Screen_Iface 2015-07-27 16:47:55 -04:00
Mike Blumenkrantz 4543e26ca6 remove e_screensaver_force_update()
this was just used to set up x11 screensaver stuff, which has now been
relocated to the related comp_init function
2015-07-27 15:54:15 -04:00
Mike Blumenkrantz 7f638d98bf add functioning wayland screensaver support
block xscreensaver events, manage input<->activation eventing

fix T2525
2015-07-27 15:46:57 -04:00
Mike Blumenkrantz c2ecadae14 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:25:01 -04:00
Mike Blumenkrantz 0a8ee7b5ad 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:23:13 -04:00
Mike Blumenkrantz 0d19a5914b apply csd sizing transform for wayland configure events
when not resizing, the sizes passed to configure should be based on the
window size and not the surface size. in order to calculate this, it's
necessary to keep track of the last-known window geometry for non-maximized
states and create offsets with which to calculate new sizes

this fixes directional maximizes as well as unmaximizing
2015-07-24 16:35:21 -04:00
Mike Blumenkrantz 9e4fe82fbc always send geometry to configure method for wayland clients when not resizing
failure to set this would lead to clients changing geometry when maximized while
focus state was removed
2015-07-24 16:34:18 -04:00
Mike Blumenkrantz 0321fd690e do not send duplicate configures for wayland clients during maximize
this seems to not have caused any real issues, but it made debugging
more of a pain and is unnecessary connection noise
2015-07-24 16:33:33 -04:00
Mike Blumenkrantz dd1577a169 fix client smart callbacks on (un)maximize
these should match the callbacks triggered for whatever the current
maximize state is
2015-07-24 14:34:03 -04:00
Mike Blumenkrantz 187fd44936 add an actual module no-save blacklist
this should make it easier to keep track of modules that should be
blocked from having their load states saved
2015-07-24 14:34:03 -04:00
Chris Michael 33414c0a0d enlightenment: Remove static function prototype for unused function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-24 13:16:04 -04:00
Chris Michael b98a58f632 enlightenment: Allocate space for terminating NULL
Fixes CID1261289

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-24 13:12:20 -04:00
Chris Michael f25f074be5 enlightenment: Remove listener for XDnD status
As we don't do anything within this handler, having it is just
pointless. Remove it. Fixes Coverity CID1267214

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-24 13:09:36 -04:00
Derek Foreman 457f3c013c wayland: fix key repeat
Summary:
wl_keyboard_send_repeat_info takes ints, not floats.  We were rounding to
0 and weston-terminal didn't key repeat.

fixes T2597

Reviewers: devilhorns, zmike

Subscribers: cedric

Maniphest Tasks: T2597

Differential Revision: https://phab.enlightenment.org/D2859
2015-07-23 11:01:31 -04:00
Mike Blumenkrantz 5cbbe261d7 add a timer for wl client focus to delay held key input
this prevents keys from immediately being sent to newly-focused clients
and avoids the case of reverting focus from one app to another on keybind
close, only to have the second app also close immediately using the same keybind
2015-07-22 17:55:30 -04:00
Mike Blumenkrantz 738622b068 send wl kbd modifiers only when changes occur 2015-07-22 17:46:39 -04:00
Mike Blumenkrantz d38b2eb6b3 create/manage list of focused wl keyboard resources for reuse in kbd operations
this simplifies kbd code all over
2015-07-22 17:40:28 -04:00
Mike Blumenkrantz 0b66c2d841 set new_client flag on xwl clients during swap
this forces another run of client placement so that xwl clients do
not always appear at 0,0
2015-07-22 17:10:49 -04:00
Mike Blumenkrantz ae1fc10d06 remove unnecessary geometry setting during xwl client swap
this geometry will be applied during show
2015-07-22 17:10:11 -04:00
Mike Blumenkrantz 43ed8dbdb5 set shell-less wl surface mapped state regardless of visibility during commit
new_client flag here will defer show operations, but the operations will complete
2015-07-22 17:09:14 -04:00
Mike Blumenkrantz 6dfc6da02c update wl keyboard resource key presses on focus in/out of surfaces 2015-07-22 16:59:23 -04:00
Mike Blumenkrantz 5c5fb11187 allow wl client focus-out callback to execute on deleted E_Clients 2015-07-22 16:28:48 -04:00
Mike Blumenkrantz 435bd8794a don't update wl keyboard state on client focus events
this is always up-to-date
2015-07-22 16:28:08 -04:00
Mike Blumenkrantz 75fb072dc3 fix backlight init value
in the case where xrandr is not used, setting backlight to very dim on init
will result in the backlight remaining at a very dim level when the backlight
normal level is 1.0 since backlight values will not successfully update until
at least 0.05s after the main loop starts

ref T1333
2015-07-22 13:56:19 -04:00
Mike Blumenkrantz 818fcb01f4 fix compositing error when client is ec->hidden during show animation
this prevented clients from being deleted and resulted in artifacts and
memory leaks
2015-07-22 13:30:02 -04:00
Mike Blumenkrantz a3d5762bf2 simplify deskmirror client desk checking 2015-07-22 13:23:53 -04:00
Mike Blumenkrantz 9c1fca5a16 fix wl build 2015-07-22 12:24:35 -04:00
Mike Blumenkrantz a9db84f94e 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:24:39 -04:00
Mike Blumenkrantz a951b88305 don't block keybind activation while grabs are active 2015-07-21 15:33:50 -04:00
Mike Blumenkrantz b51e5fa0b2 ensure clients possess comp_data before dereferencing it during x11 stacking
ref T2566
2015-07-21 14:34:11 -04:00
Mike Blumenkrantz 5c00c1009b redo wl compositor key eventing
* break out key callbacks into EINTERNs
* remove extraneous/unused mouse event handlers
* enforce wl modifier updating in all cases
* ensure keybinds are activated before wl clients receive input
  - block wl client input during grabs

fixes T2565
2015-07-21 14:27:29 -04:00
Mike Blumenkrantz d2fce4ce27 do not add x11 compositor desklock hooks in non-x11 compositor 2015-07-21 14:25:41 -04:00
Mike Blumenkrantz 2ce5dfa33f add wl compositor desklock hooks to add grabs during lock 2015-07-21 14:25:16 -04:00
Mike Blumenkrantz 21b8016c5b add clients to focus stack as necessary in e_client_unignore() 2015-07-21 14:21:36 -04:00
Mike Blumenkrantz 3c3f0845f3 fix typo in comp object opaque region render
#DerekWasRight
2015-07-20 17:26:13 -04:00
Mike Blumenkrantz f6725c53a4 move opaque region (image border) apply to render fn
this seems to provide a more accurate region for rendering in my tests,
as various weston-apps no longer show black rects during resize
2015-07-20 14:38:44 -04:00
Mike Blumenkrantz 612a61ce0e don't mangle wl client opaque region tiler during commit clip 2015-07-20 14:38:31 -04:00
Mike Blumenkrantz 4acce00428 improve wl compositor tiler usage
pixman <-> tiler api naming seems similar but functionality is totally
different
2015-07-20 14:10:55 -04:00
Mike Blumenkrantz 4d76741533 only perform keybind grabs on root window for x11 compositors 2015-07-20 13:32:06 -04:00
Mike Blumenkrantz f2d71ad903 block compositor keybinds using more accurate x11 detection
blocking based on event window here is only valid for true x11 compositors
and not just compositors with root windows

fixes keybind activation when running xwayland clients
2015-07-20 13:29:13 -04:00
Carsten Haitzler ee16a11455 e - randr allow you to turn off screens and keep them off if config says so 2015-07-19 22:41:48 +09:00
Carsten Haitzler 94a15856bd e - unbreak client pixmaps when native surf is used
this unbreaks disappearing client content introduced by
5a001b1759.
2015-07-18 23:39:46 +09:00
Mike Blumenkrantz 6b7ce91373 do not set opaque regions on comp object mirrors
based on testing, this breaks all rendering of related objects. I
suspect that the image border needs to be manually scaled based on
image::mirror proportions in order for this to work as expected, but
adding the required code seems like too much complexity for nearly zero
gain
2015-07-17 16:09:52 -04:00
Mike Blumenkrantz 1d4d906361 render surface opaque regions as opaque when image border is set
it seems that just setting the opaque region is not enough for evas;
we must also inform it that the opaque region is opaque and should not
be blended
2015-07-17 16:07:01 -04:00
Mike Blumenkrantz 552f065c09 zero out wl surface opaque region on commit in all cases
it's possible that the opaque ptr may exist but have no regions,
which will result in the previous frame's opaque region being used
2015-07-17 15:58:14 -04:00
Mike Blumenkrantz bd776b157f add e_client_unignore() for triggering events when unignoring a client
mainly for use in wayland compositing since all surfaces are ignored
until they get a shell surface or a commit
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz 51c74889cf fix wl_fb define name in comp init 2015-07-17 15:30:30 -04:00
Mike Blumenkrantz 5a001b1759 enforce image border/size/pixels_dirty setting on comp mirrors during create
this should provide a more accurate first-render for mirrors as they are added
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz 6471ba0a05 do not update client list hint when creating a new wayland client 2015-07-17 15:30:30 -04:00
Mike Blumenkrantz fbe55d20f1 always set new wayland E_Clients to be ignored during client hook 2015-07-17 15:30:30 -04:00