Commit Graph

10594 Commits

Author SHA1 Message Date
Mike Blumenkrantz 41f4bbf663 return false when failing to create a mirror during deskmirror obj check 2015-08-20 15:56:02 -04:00
Mike Blumenkrantz 218064ffe0 add some smart callbacks for comp objects on redirect/dirty state change 2015-08-20 15:55:35 -04:00
Mike Blumenkrantz 5b4ef00d56 force render queue and check for redirection on clients with 0x0 pixmaps
fixes an issue where resizing the current nocomp client could result in a
broken compositor until a render queue was triggered
2015-08-20 15:39:22 -04:00
Seunghun Lee 26d352f219 Add module "wl_text_input" for supporting *wl_text_input* and *wl_input_method* protocol in wayland.
Summary:
this patch allow to use virtual keyboard such as weston-keyboard.
it was tested in wayland verion 1.6.

Test Plan:
<prerequisite>
- Configure with --enable-wl-text-input
- edit configuration file, e.cfg to enable module wl_text_input.

1. run enlightenment as a wayland display server.
2. run weston-keyboard.
3. run weston-editor.

Reviewers: raster, Sergeant_Whitespace, devilhorns, zmike

Reviewed By: zmike

Subscribers: ManMower, Sergeant_Whitespace, cedric, jihoon

Differential Revision: https://phab.enlightenment.org/D2275
2015-08-20 14:55:55 -04:00
Mike Blumenkrantz 38d5746977 check compositor screen iface existence before deref in dpms
fixes crash in compositors lacking screen ifaces
2015-08-19 15:32:24 -04:00
Mike Blumenkrantz 2cdb5a3b3f feed mouse-up event during mouse down on menus
this fixes the case where the mouse is moved while the mouse is pressed
so that the selected menu item will continue to follow the mouse

fix T2127
2015-08-19 15:03:50 -04:00
Mike Blumenkrantz d631bef3eb set 'stopping' during logout action
this flag is used in some cases to determine whether to behave as
though enlightenment is stopping. in the case of logout, we are stopping.
2015-08-19 14:35:16 -04:00
Mike Blumenkrantz 21ee21bc1f end wl xdnd drags on the compositor canvas using the full dnd end codepath
fix T2652
2015-08-19 14:35:04 -04:00
Mike Blumenkrantz fb79fff70d don't set E_Client->changes.visible on successful show/hide
iirc this was a fix for something else that was going on early in
e19 development, now it creates issues when attempting to hide clients
2015-08-19 14:00:52 -04:00
Chris Michael 63b96bbb5b enlightenment: Remove wl_screenshot module from whitelist
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-19 12:30:36 -04:00
Mike Blumenkrantz 44193b665e only use deferred focus-setting on desk flip focus if client is not visible 2015-08-18 21:06:59 -04:00
Mike Blumenkrantz 0730e3853a unset E_Client->want/take_focus flags in hide callback
deferred focus should no longer be valid if a client has been hidden
before the focus-set could be triggered

fixes super fun infinite loop with desk flips
2015-08-18 18:18:12 -04:00
Mike Blumenkrantz 68da56b430 do not modify E_Client->visible value in show/hide callbacks 2015-08-18 18:17:51 -04:00
Mike Blumenkrantz 7b7dbbc249 reject x11 NotifyVirtual and NotifyInferior mouse in events more accurately
these events are valid when moving from parent<->child window

fix T2674
2015-08-18 17:23:07 -04:00
Mike Blumenkrantz f4e07cd8f0 add event rect for deskmirror in pager/taskbar modes
ensures that events are properly triggered and consumed when this
widget is clicked on

fix T2645
2015-08-17 14:56:17 -04:00
Mike Blumenkrantz a364dbb0c8 force xwl client to retain original x11 client's placed flag during swap
fixes race condition where xwl clients would sometimes erroneously place
at 0,0
2015-08-13 17:10:54 -04:00
Mike Blumenkrantz 76fb106129 enable shape cutting for xwl clients during flip
fixes xwl<->xwl dnd
2015-08-13 16:20:39 -04:00
Mike Blumenkrantz 91ed3995f0 remove some local aliasing of e_comp_wl global 2015-08-13 16:08:55 -04:00
Mike Blumenkrantz 3f13b6889d replace existing usage of x/wl_comp_data with corresponding globals 2015-08-13 16:05:57 -04:00
Mike Blumenkrantz 32adc0e901 add e_comp_x and e_comp_wl globals
constantly typing e_comp->x/wl_comp_data-> is tiring
2015-08-13 16:01:08 -04:00
Mike Blumenkrantz 4956fe3304 delete data device resources from hash using client
fixes crash when currently-entered wl surface is destroyed
2015-08-13 14:21:56 -04:00
Chris Michael e31441bb48 enlightenment: Replace old comp_type conditionals
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-13 10:33:48 -04:00
Chris Michael 2f1d32a081 enlightenment: Replace old comp_type conditionals
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-13 10:31:54 -04:00
Mike Blumenkrantz 97f131582e add local event for wl_wl output to use when a global has been received 2015-08-12 20:18:43 -04:00
Mike Blumenkrantz 725890f105 emit randr change event on randr init
wayland compositors have been failing to create any outputs for some
time as a result of not getting any randr events on init
2015-08-12 20:17:25 -04:00
Mike Blumenkrantz 7986b084f8 enforce compositor canvas resizing/updating when emitting randr events
all compositors will want this to occur, so make it automatic
2015-08-12 19:27:53 -04:00
Mike Blumenkrantz a08a1434c1 move x11 ee resize callback to comp_canvas, simplify x11 randr event handler
this should ensure that all compositors accurately perform resize-related
canvas operations
2015-08-12 19:26:19 -04:00
Mike Blumenkrantz 7f3d59f6f2 init null wl mime types array when new type is offered 2015-08-12 18:42:42 -04:00
Mike Blumenkrantz ecffe370d1 convert E_Comp_Wl_Data_Source->mime_types to Eina_Array
this data struct fits the usage of the data more effectively
2015-08-12 17:39:15 -04:00
Mike Blumenkrantz 442d63d8d6 track button mask for all drags, only end drag when mask has depopulated
previously, beginning a drag with the left button, then pressing and
releasing another button would result in the drag terminating without
the original button being released
2015-08-12 15:39:42 -04:00
Mike Blumenkrantz 48be7016ad make wl client mouse button handler fn external 2015-08-12 15:12:03 -04:00
Mike Blumenkrantz 5bc8376fb5 break out wl client motion sending, force motion events during x11 drags
weird, but fixes xwl drag positioning
2015-08-12 15:11:59 -04:00
Mike Blumenkrantz ba1077fb42 fix xwl pixmap unaliasing during client deletion
no more crashing, hooray!
2015-08-12 14:32:21 -04:00
Chris Michael cb622b8a7a enlightenment: Remove legacy unused e_pixmap_image_draw_done function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-12 14:20:05 -04:00
Mike Blumenkrantz 28c84f92dc don't iterate damage rects during render in wayland compositor mode
this is a no-op that spins for no reason
2015-08-12 14:13:21 -04:00
Mike Blumenkrantz f29410b084 force copy rendering for argb wayland clients
wayland protocol for shm handling is broken for now and I can't fix
real issues because of the constant crashing when buffers disappear
randomly
2015-08-12 14:12:04 -04:00
Mike Blumenkrantz edc2de32c1 use unmodified client geometry for new xwl clients during first surface commit
fixes a race condition where a configure request occurring before the xwl
client swap could fail to take effect due to xwayland bug where buffer size
is reported incorrectly
2015-08-12 13:45:19 -04:00
Mike Blumenkrantz 9613b1faff do not add render update on resize fail due to unusable pixmap in wl
this will not have any effect
2015-08-12 13:45:19 -04:00
Stefan Schmidt be97356eaa e_widget_filepreview: Remove assign without effect
CID: 1316023
2015-08-12 09:25:16 +02:00
Mike Blumenkrantz 11e374ce13 only create fd handler for wl clipboard data source if fd is passed 2015-08-11 16:04:36 -04:00
Mike Blumenkrantz ebc6c0ee35 don't remove wl data source listener when xwl owns the selection
crash-- since xwl has no listener
2015-08-11 16:04:36 -04:00
Mike Blumenkrantz 335f9c4324 finish off x11<->wl clipboard support
a lot of this functionality is reused from dnd. basic selection owner
management in x11 and slapping bytes down a pipe to the wl client;
a bit laggy when pasting to wl clients sometimes, need to spend more time
debugging that...

 #Kansas
2015-08-10 18:59:03 -04:00
Mike Blumenkrantz 0ee67a1e52 make e_comp_wl_data_device_keyboard_focus_set() external 2015-08-10 18:59:03 -04:00
Mike Blumenkrantz 495a14ea17 make wl clipboard source create/unref external 2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 0a690c7d17 don't crash in wl compositor when data resource is destroyed in multiple listeners 2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 263794f42f only update wl dnd surface client if a wl drag is active 2015-08-10 18:59:02 -04:00
Mike Blumenkrantz bf4c5452f3 track xwl clipboard owner 2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 2e000a45dc use current ecore-x time when setting selection owner for xwl dnd operations
according to icccm spec, it is not recommented to use currenttime here
2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 5c14b4a17b add comp util function for determining whether xwayland is active 2015-08-10 18:59:02 -04:00
Carsten Haitzler 019b6641a3 e - randr - handle lid close screen turnoff correctly again
this USED to work until i made things like auto-clone work without
config and so on and that broke turning off closed lid screens. it
also works when i suspend while lid is closed and resume (i can only
test with lid open as i need to open lid to unsuspend).
2015-08-09 00:22:16 +09:00
Mike Blumenkrantz 8e211f1950 implement wl->x11 dnd operations
seems to work fine, large selection data (ref T2330) still untested
2015-08-07 21:07:34 -04:00
Mike Blumenkrantz c696fa7088 do not send wl dnd positioning updates to xwl clients 2015-08-07 21:07:34 -04:00
Derek Foreman f124f1bf6e wayland: force wl surface frame callbacks on commit for undamaged surfaces
Summary:
Doing it just for bufferless surfaces wasn't quite enough, sometimes
we get a sequence like: attach, commit, frame, commit

And we need to respond to the frame.

 #Kansas

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2934
2015-08-07 17:20:05 -04:00
Derek Foreman 15d13dad16 wayland: Always add frame callbacks to current state on commit
Summary: Previously we ignored it for unmapped surfaces.

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2932
2015-08-07 14:52:33 -04:00
Mike Blumenkrantz cae58cea9f force wl surface frame callbacks on commit for bufferless surfaces
#Kansas
2015-08-07 13:48:21 -04:00
Mike Blumenkrantz 262598a126 print DBG infos for unhandled x11 client messages 2015-08-07 13:48:21 -04:00
Mike Blumenkrantz a579c2ec36 force render update on wayland clients during commit
an unmapped wayland client must still run post-render code to execute
frame callbacks

fixes terminology initial render with efl from git
2015-08-06 19:40:10 -04:00
Mike Blumenkrantz 5bde1a8648 implement x11->wayland dnd operations
still a little rough, but the basics are functional. works by showing
the x11 compositor selection window, which has rects to exclude geometries
of xwl clients, for getting x11 xdnd events, and then manually sending
all the related client messages in order to inform the x11 client that
enlightenment is, in fact, an extremely credible xdnd drop site and not
a rogue compositor which will mangle/destroy the dnd data.

still render crashes after the operation completes, so possibly not the
most useful thing to be using now
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 3c722ac7f2 alias xwl client pixmaps -> wl surface pixmaps
it's now possible to retrieve the xwl client using the xwl xwindow
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 6aa9a9477e add pixmap aliasing
this provides the ability to alias one pixmap id as another pixmap
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 8557da360c make dummy e_drag rect invisible 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz e37f5d8c28 set pass events on DND type windows
these are the actual drag windows from external apps and will be stuck
under the cursor, ideally not blocking/intercepting all motion events
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 000c97659f reject xwl clients from wayland data device enter/leave functions
NYI
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 550cc56e59 make most wayland data device functions external 2015-08-06 19:31:20 -04:00
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
Mike Blumenkrantz d5e25a8449 add wl_wl wl output module
it is now possible to create a xephyr window in a drm-enlightenment session,
launch wl-x11 enlightenment in xephyr, and then launch wl-wl enlightenment
inside that enlightenment

the primary limitation on this output module is that all internal windows will
appear in the outer compositor due to the current restriction of ecore-wayland
with regard to only having a single global display server connection

 #Inception
2015-07-17 15:30:30 -04:00
Seunghun Lee faacad29dc remove a kind of typo in E_ZONE_GEOMETRY atom string.
Test Plan: N/A

Reviewers: devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2833
2015-07-17 15:04:39 -04:00
Chris Michael bf993c6eee e-comp-wl: Fix region_add and region_subtract functions to make sure we have accurate opaque regions
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-17 14:58:34 -04:00
Mike Blumenkrantz 32c48f9a40 ...and also ungrab the compositor when internal drags end 2015-07-16 12:59:04 -04:00
Mike Blumenkrantz 2e5ab5a947 only use input xwindows for internal drags in x11 compositor
this fixes input region detection for dnd operations

fix T1831
2015-07-16 12:52:00 -04:00
Mike Blumenkrantz 7859787f73 wl clients should not use edges during keyboard resize
ref T2452
2015-07-15 18:08:32 -04:00
Mike Blumenkrantz ecb5f4ca41 add E_Client->keyboard_resizing flag
there is no other indication of whether a client is resizing using the
keyboard, so this should serve as an adequate hint
2015-07-15 18:07:12 -04:00
Mike Blumenkrantz 73c03565b3 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:22:02 -04:00
Mike Blumenkrantz 008a0658ec only trigger client mouse-in from x11 mouse move event if client+desk are visible
ref T2566
2015-07-15 14:27:19 -04:00
Mike Blumenkrantz 17e878eca3 simulate netwm sync for xwl clients
blocks execution of resizes until the surface commit arrives. reduces
the race condition between resize and render and eliminates frame drops
during slow resizes
2015-07-15 13:58:03 -04:00
Chris Michael 321a421208 e-comp-wl: Remove unused variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-15 13:46:51 -04:00
Chris Michael 9e2512eb98 e-comp-wl: Fix T2570: stuck key when closing efm windows
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 15:26:38 -04:00
Chris Michael e46c0812fc e-comp-wl: Fix getting end key during key down/up events
NB: This is actually an Oopsie from a previous commit that should not
have gotten in.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 15:10:38 -04:00
Chris Michael 147bc3d71a e-comp-wl: don't send keyboard modifiers twice.
NB: e_comp_wl_input_keyboard_modifiers_update already sends keyboard
modifiers to all keyboard resources, so no need to call this twice.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 14:46:13 -04:00
Chris Michael 116af14649 e-comp-wl: Update keyboard and modifier state AFTER we send them to clients
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 14:18:21 -04:00
Chris Michael 46997706ea e-comp-wl: Add support for wl_keyboard_send_repeat_info to allow for configurable keyboard repeat rates
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 13:29:02 -04:00
Chris Michael 74e96f3826 e-comp-wl: Update keyboard key state regardless of client focus or not
Key state updates need to be consistent. As we update the key state on
key up regardless of client focus, then we should be doing the same in
the key_down event handler so that key state remains consistent.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 13:29:02 -04:00
Chris Michael 5052bd9266 e-comp-wl: Don't call keyboard_modifiers_update twice
e_comp_wl_input_keyboard_state_update already makes a call to
e_comp_wl_input_keyboard_modifeirs_update so there is no need to call
it twice on key up/down events.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 13:29:02 -04:00
Mike Blumenkrantz 161b67a53d Revert "delete render updates for xwayland clients upon triggering a client resize"
This reverts commit f3f29a0cf8.

upon further review, this was not at all helpful and breaks resizing eventually
2015-07-14 13:12:06 -04:00
Simon Lees e8911323c3 e_bg_del should only delete the bg on the zone specified
Summary:
previously e_bg_del didn't take the zone paramater into
account

fixes T2572

Reviewers: raster, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2810
2015-07-14 12:32:37 -04:00
Carsten Haitzler 964fabe6e2 e randr2 - auto clone and use common res when doing so - make it work
tested this and made it work. should fix T2100
2015-07-12 18:12:00 +09:00
Mike Blumenkrantz c128d54690 disable size debug on drags 2015-07-11 08:37:56 -04:00
Mike Blumenkrantz f3f29a0cf8 delete render updates for xwayland clients upon triggering a client resize
fixes frame dropping during resize
2015-07-10 16:59:47 -04:00
Mike Blumenkrantz 311f524094 only register dnd xwindow with compositor canvas in x11 compositor mode
registering it under wayland creates spurious mouse events
2015-07-10 16:03:45 -04:00
Mike Blumenkrantz 4a779ef03d fix xdnd in (x)wayland
this is a real thing, so don't abort immediately if it happens
2015-07-10 16:03:18 -04:00
Mike Blumenkrantz e92519f171 adjust layering of pointer and init splash
prevents cursor from getting stuck above screensaver fade
2015-07-10 14:21:50 -04:00
Mike Blumenkrantz 697e1beda3 add wayland client post-render references in the render loop 2015-07-10 13:22:15 -04:00
Mike Blumenkrantz bec06b8703 add function to fill in x11 cursor image on creation
xwayland compositing requires that we set up a root window cursor image
immediately since we'll be getting that cursor surface to display as soon
as the pointer goes out of an x11 client's window
2015-07-10 13:04:12 -04:00
Mike Blumenkrantz 5a26363046 break up some pointer setting code into helper functions 2015-07-10 13:03:05 -04:00
Mike Blumenkrantz 5d9cefd9e2 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 12:07:29 -04:00
Mike Blumenkrantz c9d5053998 disable netwm sync on x11 clients in wayland compositors
this has no effect
2015-07-09 19:32:51 -04:00
Mike Blumenkrantz 884068ff9d when e crashes in wayland, just crash instead of possibly freezing 2015-07-09 15:11:13 -04:00
Mike Blumenkrantz 399e3c79ce unify crash handler functions 2015-07-09 15:01:50 -04:00
Mike Blumenkrantz 20d281d9d3 redo e_pointer to support xwayland cursors
this requires that both canvas cursors and window cursors be present for the same
E_Pointer object, even though only the canvas cursor is actually visible

 #kansas
2015-07-09 14:45:04 -04:00
Mike Blumenkrantz c4c18ed30b return to using standard client util fns for getting client wins in x11 2015-07-08 17:16:25 -04:00
Mike Blumenkrantz 54c6d7094e remove unnecessary E_COMP_WL #defines
this is only required for aliasing E_Client->comp_data as wayland compositor data.
if comp_data is never dereferenced, it is not necessary to declare the compositor
type
2015-07-08 17:12:42 -04:00