Commit Graph

18233 Commits

Author SHA1 Message Date
Derek Foreman da23b852e7 Disable wayland dmabuf for the X11 backend
This is just too hard to get right and nobody will notice its
absence, so let's not bother for now (or ever, I hope)
2016-05-18 12:05:34 -05:00
Derek Foreman 6b0c55dd96 Track parent compositor dmabuf capabilities on wayland on wayland
When running as a wayland compositor connected to another wayland
compositor, we don't want to advertise dmabuf capabilities if the
parent compositor doesn't support them.

If it does, we'll want to proxy dmabuf requests to it instead of handling
them ourselves.

Expose this as new bools in e_comp_wl.
2016-05-18 12:05:34 -05:00
Derek Foreman f6d99980ba Remove GL presence test from native surface set on dirty objects
This test has been pushed into e_comp_object_native_surface_set() and
will be done as appropriate.

Upcoming wayland DMAbuf buffers need native surfaces even if GL isn't
present.
2016-05-18 12:05:34 -05:00
Derek Foreman 50a3f84191 Move the test for resetting no native surface to after caps checks
This is supposed to be functionally equivalent, but is a little tricky to
prove.

The benefit of this is a simplification to the callers, which no longer
have to consider gl capabilities in the call, as that is now tested for
internally.
2016-05-18 12:05:33 -05:00
Derek Foreman 57f0150b73 Break native surface test criteria into explicit wayland and X cases
Until now it's been reasonable to consider these together as the
criteria have been similar.  With the upcoming introduction of wayland
DMAbuf buffers, they diverge.

We don't need to test for GL in the wayland case because we don't
advertise GL capabilities to clients when we don't support it, so they
can't create GL buffers unless we can display them.
2016-05-18 12:05:33 -05:00
Derek Foreman 1774b59923 Add e_pixmap API for testing if a pixmap is a native surface
DMAbuf for wayland will complicate determining whether a pixmap can use
a native surface or not, so we add an API here to check this.

Note that this doesn't take compositor capabilities into account - for
example, X pixmaps need GL enabled to use native surfaces.  This is
already tested elsewhere.
2016-05-18 12:05:33 -05:00
Mike Blumenkrantz 91d16899b1 fix e_place_zone_region_smart_cleanup()
this function was adding the same client multiple times, failing to cleanup
windows effectively, and misusing the skiplist functionality of e_place functions

fix T3654
2016-05-18 12:32:27 -04:00
Mike Blumenkrantz 366193f2d2 remove pulse sinks/sources from list before running cbs which access the list
this guarantees a crash any time the default sink gets removed since it will
always re-set the about-to-be-deleted default sink as the default sink

fix T3277 probably
2016-05-17 15:05:18 -04:00
Carsten Haitzler 62bcd72eef e - suspend.hibernat intelligently - dont account for ac power
this means only lid/screen status affects intelligent suspending. it's
not what people expect and doesnt rely on ecore getting mains power
stuff right too.
2016-05-17 00:33:47 +09:00
Chris Michael b5e47665bb stop filling logs with buffer transform/scale spam
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-05-15 10:47:53 -04:00
Carsten Haitzler 59e2eb40f8 warnings - silence some theoreitcal wranings in build
a bunch of "potentially uninitialized variable" warnings fixed.
2016-05-15 23:14:15 +09:00
Mike Blumenkrantz ec9a888fcf more tweaks for manual window placement in client eval 2016-05-13 11:38:17 -04:00
Mike Blumenkrantz 685aafcd41 prevent double emission of E_EVENT_CLIENT_SHOW 2016-05-13 11:28:27 -04:00
Mike Blumenkrantz 030d083c73 ensure that client eval correctly handles retries on visibility-pending clients
ref 2854352bc8
fix T3636
2016-05-13 11:24:08 -04:00
Marcel Hollerbach 1aea5ab079 e_xkb: reconfig when we have set a new set of layouts
When in the config dialog a new set of layouts is created, this set has
to be told to the displayserver. Like at the startup of e, so calling
e_xkb_reconfig().

fix T3072
2016-05-12 21:02:40 +02:00
Marcel Hollerbach ce6d2285f1 e_xkb: split up e_xkb_update
before the function had the semantics that -1 flushes the set of layouts
back to the displayservice. Now its done with e_xkb_reconfig.
2016-05-12 20:54:22 +02:00
Mike Blumenkrantz 189dce81f9 force cursor placement to obey useful zone geometry 2016-05-12 12:10:48 -04:00
Mike Blumenkrantz 2854352bc8 adjust some client eval parts to make manual placement work again
activating the window_move action doesn't require the client to successfully
be shown, and failing this check would cause the window_move action to be
deleted until the next restart
2016-05-12 12:05:59 -04:00
Mike Blumenkrantz 55c83134c1 use parent windows for x11 binding grabs
ensure that internal windows do not receive mouse events before the compositor

fix T3347
2016-05-12 11:23:20 -04:00
Mike Blumenkrantz 60da58d8ad only check pixmap argb state for non-X11 clients
non-argb windows can have argb pixmaps.

ref 6d397e313b
2016-05-11 18:34:49 -04:00
Mike Blumenkrantz ada13539bf avoid infinitely looping when applying x11 window grouping
#ThatTimeKainXFoundABug
2016-05-11 18:29:38 -04:00
Mike Blumenkrantz d3ba524a62 use window id for internal window pixmaps again on wayland
this was breaking internal windows when more than one was open, and
especially if any were open which had a parent-child relationship, by
using the same id for all internal window pixmaps
2016-05-11 15:40:10 -04:00
Mike Blumenkrantz 45e872ddf1 set E_Client->override flag for internal wins as needed 2016-05-11 15:40:10 -04:00
Mike Blumenkrantz 8d4a75575c remove some cruft from _e_comp_wl_client_cb_new() 2016-05-11 15:40:10 -04:00
Mike Blumenkrantz 2d85b8f111 ensure int64_t is used in all cases for wl pixmap ids 2016-05-11 15:40:10 -04:00
Mike Blumenkrantz 4a47f74b3a enforce setting alpha on comp objects only after image data has been set
setting alpha can trigger a render sync, crashing if the old data is no
longer valid
2016-05-11 15:40:10 -04:00
Mike Blumenkrantz 6d397e313b also check pixmap argb state when setting comp object alpha
more accurate for wayland
2016-05-11 15:40:09 -04:00
Mike Blumenkrantz 5d300bcb46 fix usage of e_object_unref in xkbswitch when managing new kbd dialog
probably harmless?
2016-05-11 15:40:09 -04:00
Mike Blumenkrantz f25b2ab434 toggle compositor canvas focus during init
this sets the toplevel focus flag in elm, allowing widgets on the compositor
canvas to receive focus in wayland compositors
2016-05-11 13:33:31 -04:00
Mike Blumenkrantz 89deb898ad change efm icon entry to only toggle focus in x11 compositors (runtime) 2016-05-11 13:32:52 -04:00
Mike Blumenkrantz 280a29cc95 Revert "add SA_NOCLDWAIT to SIGCHLD flags when xwayland module loads"
This reverts commit 66a3fcb013.

fix T3599
2016-05-11 12:49:53 -04:00
Mike Blumenkrantz f2ad686fc3 handle positioning of x11 overrides with csd accurately
when first applying the csd region to this type of window the coords must
be adjusted in order to account for the shadow

fix T2934, T2931
2016-05-10 16:04:57 -04:00
Mike Blumenkrantz e2390bebff only load wayland-specific modules on startup if they have been built 2016-05-10 14:18:09 -04:00
Mike Blumenkrantz e4f3179731 block keyboard sending for wl clients if a compositor grab is active
fix T3599
2016-05-10 13:00:01 -04:00
Mike Blumenkrantz f37590209d disable focus effects for windows with csd
fix T3408
2016-05-10 12:35:06 -04:00
Mike Blumenkrantz 16797009c0 ensure child windows are placed on screen
when centering a child over its parent, checks were not made to ensure that
by centering the child it had not gone offscreen
2016-05-10 12:13:12 -04:00
Mike Blumenkrantz ac86429a2c manage pending state list more effectively in wl shell
fix T3433
2016-05-10 11:34:48 -04:00
Mike Blumenkrantz 240561fda1 do not add ignored clients to ibar menu
fix T3603
2016-05-09 13:56:56 -04:00
Mike Blumenkrantz 7ebaa1ffb3 make init fail if a dbus session connection cannot be created
typically this indicates a broken session manager or someone trying to run
a wayland session without using dbus-launch
2016-05-09 13:30:40 -04:00
Mike Blumenkrantz c286fe48c0 prune uuid remembers on clean startup
ensure that stale sessions are destroyed regularly
2016-05-06 14:35:16 -04:00
Mike Blumenkrantz 411f378998 flag wl surfaces as internal during create() based on pid matching
fix T3596
2016-05-06 13:52:10 -04:00
Mike Blumenkrantz 66a3fcb013 add SA_NOCLDWAIT to SIGCHLD flags when xwayland module loads
pulseaudio uses waitpid internally and will deadlock if ecore-audio
performs a deferred connect
2016-05-06 13:43:47 -04:00
Mike Blumenkrantz 3178064d30 ensure xwayland module init does not fail due to early startup
comp_type may not be set at the time of init
2016-05-06 13:42:20 -04:00
Mike Blumenkrantz 01c261e9f7 unset DISPLAY during mixer's pulse backend startup
fixes more xwayland deadlocks
2016-05-06 13:40:03 -04:00
Mike Blumenkrantz ed25a5005f clean up mixer includes
config.h needs to be included. always.
2016-05-06 13:38:09 -04:00
Mike Blumenkrantz 720074e926 add configure flag for xwayland binary 2016-05-06 13:37:10 -04:00
Mike Blumenkrantz ef1772b8cb implement wl client session recovery
another small feature patch brought to you by insomnia

 #SamsungFeatures
2016-05-05 15:47:55 -04:00
Mike Blumenkrantz e0d1a572a1 bad copy/paste in _e_place_desk_region_smart_obstacle_add()
CID 1354988
2016-05-05 09:36:42 -04:00
Mike Blumenkrantz 4639062133 uninitialized vars in e_client_maximize_geometry_get()
CID 1354989, 1354990
2016-05-05 09:35:51 -04:00
Mike Blumenkrantz 9451f22d6c evry null deref
CID 1355061
2016-05-05 09:33:55 -04:00
Chris Michael 9e3b8b7528 disable option for mouse to use Application theme if we are running in Wayland
Small patch to disable selecting Application themed mouse pointers
when running in wayland as this option is currently broken when
running in wayland (gives no mouse cursor at all)

e_pointer calls _e_pointer_x11_setup (from _e_pointer_type_set) which
only sets the cursor via ecore_x_cursor_shape_get calls...

essentially you end up with no mouse cursor because e_pointer is
missing codepaths to lookup system mouse cursor images when running in
wayland.

ref T3585

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-05-04 14:55:26 -04:00
Mike Blumenkrantz 768252740b don't revert focus to desktop fileman during compositor grab
grabs indicate an action is already occurring and focus shouldn't be altered
2016-05-03 20:27:03 -04:00
Mike Blumenkrantz ecf22d6787 hide evry on focus-out
handles case where focus is lost due to compositor grab
2016-05-03 20:27:03 -04:00
Mike Blumenkrantz 32cf7162ed ensure lifetime for wl client focus timer
fixes some focus-out crashing
2016-05-03 20:27:02 -04:00
Mike Blumenkrantz 69370250d1 don't refocus deleted clients during wl compositor grab 2016-05-03 20:27:02 -04:00
Mike Blumenkrantz 53e0bf08bc further optimize window smart placement by reducing obstacle calcs
previously the obstacle list would build from the bottom up, skipping
fullscreen and maximized windows. this would lead to cases where windows
would be moved to avoid windows which were fully obscured, and also cases
where unnecessarily large amounts of looping would occur related to the
existence of maximized windows
2016-05-02 18:37:17 -04:00
Mike Blumenkrantz 049deb2c12 directly load extra wl modules during compositor init
speed++++++++
2016-04-28 17:58:45 -04:00
Mike Blumenkrantz 01ac84035f ensure that the startup apps cache handler has run before trying to start apps
fixes timing issues when running startup apps
2016-04-28 17:58:45 -04:00
Mike Blumenkrantz 20f1aa8727 feed mouse up events to internal wins before mouse out during action exec
ref 609276e12d

fix T3347
2016-04-28 12:00:17 -04:00
Mike Blumenkrantz 33503babc8 apply xdg-shell activated state based on popup surface focus hierarchy
if a popup is activated, the originating toplevel surface should also remain
focused
2016-04-27 11:28:07 -04:00
Mike Blumenkrantz 502662456f Revert "handle recursion more effectively in e_menu_hide_all()"
This reverts commit 5764bf680e.

this was a workaround for a behavior change in efl
2016-04-27 11:27:56 -04:00
Andy Williams bcefcdf50c Only set the icon theme in elm on change
Avoid forcing config changes when they're not needed
2016-04-26 22:55:16 +01:00
Mike Blumenkrantz 5764bf680e handle recursion more effectively in e_menu_hide_all()
there were recent changes to evas object deletion mechanics which caused
this to begin crashing due to recent changes to evas object deletion mechanics
2016-04-26 10:43:07 -04:00
Mike Blumenkrantz 008a3a8152 distribute all weekeyboard edj files
fixes a build failure in packaging
2016-04-26 10:43:07 -04:00
Mike Blumenkrantz 2c1e864fbc move wayland surface E_Client del check to a place where it's more useful
completely breaks wayland on first commit? off to an auspicious start!

ref d9679f765f
2016-04-26 08:58:50 -04:00
Andy Williams 90b1bf63b7 Set the fdo theme to Elementary as well
If the user has specified that applications should
have the same icons then push the value to elm's
new icon lookup configuration.
2016-04-26 00:18:59 +01:00
Eduardo Lima (Etrunko) 677adbbc2e Revert "Bluez 5"
This reverts commit 767df72a75.
2016-04-25 19:56:22 -03:00
Eduardo Lima (Etrunko) 8acbf5d013 Fix warnings about uninitialized use of variables
src/bin/e_zone.c: In function ‘_e_zone_useful_geometry_calc’:
src/bin/e_zone.c:1272:14: warning: ‘geom.h’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (h) *h = geom.h;
              ^
src/bin/e_zone.c:1271:14: warning: ‘geom.w’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (w) *w = geom.w;
              ^
src/bin/e_zone.c:1270:23: warning: ‘geom.y’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (y) *y = geom.y + zy;
                       ^
src/bin/e_zone.c:1269:23: warning: ‘geom.x’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (x) *x = geom.x + zx;
                       ^
src/bin/e_client.c: In function ‘e_client_maximize_geometry_get’:
src/bin/e_client.c:3754:16: warning: ‘y’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (my) *my = y;
                ^
src/bin/e_client.c:3753:16: warning: ‘x’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (mx) *mx = x;
                ^
src/bin/e_client.c: In function ‘e_client_fullscreen’:
src/bin/e_client.c:4032:21: warning: ‘h’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         ec->saved.h = h;
                     ^
src/bin/e_client.c:4031:21: warning: ‘w’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         ec->saved.w = w;
                     ^
src/bin/e_client.c:4030:21: warning: ‘y’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         ec->saved.y = y;
                     ^
src/bin/e_client.c:4029:21: warning: ‘x’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         ec->saved.x = x;
                     ^
Signed-off-by: Eduardo Lima (Etrunko) <eblima@gmail.com>
2016-04-25 19:40:42 -03:00
Eduardo Lima (Etrunko) 767df72a75 Bluez 5
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
2016-04-25 19:29:01 -03:00
Derek Foreman d9679f765f wayland: Fix crash when attempting to create surfaces for deleted clients
Internal clients can be deleted by keybind before the surface create
callback fires resulting in a NULL pointer dereference.
2016-04-25 16:40:32 -05:00
Mike Blumenkrantz 53320330c6 protect xdg-shell functions from accessing deleted client data
this is mostly an issue for internal windows since they get deleted by
the compositor before the client is aware
2016-04-25 14:11:24 -04:00
Mike Blumenkrantz 417ed08329 ensure evry gadget popups effectively clamp to their zones 2016-04-25 13:10:44 -04:00
Mike Blumenkrantz c3700297d7 remove explicit edje_init/shutdown calls
elm already handles this
2016-04-25 12:55:21 -04:00
Mike Blumenkrantz fcc996545c always end drag operations on failure
fix T3507
2016-04-25 12:24:44 -04:00
Mike Blumenkrantz 05451aeb36 treat POPUP_MENU window type as an override window for comp theme matching
ensures that the menu theme gets picked for wayland popups; probably needs
a more comprehensive solution for xdgs v6
2016-04-22 15:28:54 -04:00
Mike Blumenkrantz 2014de2fe6 Revert "do not revert client focus except for normal and dialog windows"
This reverts commit 5b119d437a.

I give this solution a B- for working but also totally ruining everything
2016-04-22 14:47:35 -04:00
Mike Blumenkrantz 28dc5ced61 remove some X references in settings dialogs
fix T3435
2016-04-22 13:30:05 -04:00
Mike Blumenkrantz 5b119d437a do not revert client focus except for normal and dialog windows
fix T3432
2016-04-22 13:15:33 -04:00
Mike Blumenkrantz 5c0729221e only set "dialog" border for transient clients if window type is unset
fix T3157

from https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html :
_NET_WM_WINDOW_TYPE_DIALOG indicates that this is a dialog window.
If _NET_WM_WINDOW_TYPE is not set, then managed windows with
WM_TRANSIENT_FOR set MUST be taken as this type
2016-04-22 12:51:12 -04:00
Mike Blumenkrantz b94023c412 set NULL image data in _e_comp_object_pixels_get() on failure
ensure that nothing is rendered here
2016-04-22 12:45:26 -04:00
Mike Blumenkrantz 6f83ec7329 do not show unsized comp objects during theme apply 2016-04-22 12:45:04 -04:00
Mike Blumenkrantz d584c9a095 ensure resize is still deferred for changes.shape clients during failed resize
ref c212bb4e21
2016-04-22 12:13:11 -04:00
Mike Blumenkrantz 84cf7743b6 set NULL image pixel data during x11 render when no damages exist
fixes a weird corner case where shapeless clients try to sneak a fast one
by and you gotta be like http://i.imgur.com/irwmnCT.webm

ref T3157
2016-04-21 18:21:26 -04:00
Mike Blumenkrantz 881ccfc768 slightly simplify image data setting in e_comp_object_render() 2016-04-21 18:09:18 -04:00
Mike Blumenkrantz 77e8ab0926 remove unnecessary conditional in e_comp_object_render() 2016-04-21 18:06:58 -04:00
Mike Blumenkrantz 2a67b3a899 ensure damages do not get added for shapeless x11 clients
ref 32d4c2f2b9

ref T3157
2016-04-21 18:04:16 -04:00
Mike Blumenkrantz c212bb4e21 don't defer resizes+queue render updates for shapeless or pending shaped clients
this basically guarantees a misrender
2016-04-21 18:01:42 -04:00
Mike Blumenkrantz a97a50b306 don't force full damage on x11 override clients
reverts f6be761226

this didn't fix anything and can cause irregularities in rendering
2016-04-21 16:32:01 -04:00
Mike Blumenkrantz 019318b88f do not attempt to show x11 override windows
fix T3444, T1759, T2735
2016-04-21 15:28:55 -04:00
Mike Blumenkrantz f36f2d16bc unify client filtering checks from e_place_desk_region_smart() 2016-04-21 14:48:49 -04:00
Mike Blumenkrantz 08cb34f7ad ensure that wl clients do not run extra render on hide twice
fixes crash when applications crash
2016-04-21 13:55:23 -04:00
Mike Blumenkrantz 54e6da6576 only update wl dnd actions when applying focus 2016-04-21 13:55:23 -04:00
Mike Blumenkrantz aefa7d3795 always update wl dnd offer actions 2016-04-21 13:55:23 -04:00
Mike Blumenkrantz 42d67d51c3 do not perform input ungrab twice during dnd end in wayland
this was happening in both drag free and drag end: once is sufficient
2016-04-21 13:55:23 -04:00
Carsten Haitzler 14b6a658cf e syscon - dont show syscon if desklock is up - you can't respond
this also will lock desklock as syscon grabs input away from desklock.
press pwr button while desklock is up to find out. this fixes that.

@fix
2016-04-21 12:17:04 +09:00
Carsten Haitzler 76ed021006 e - e_start - update mtrack to use new debug mode for hunting bugs
this won't affect anyone who doesnt have a ~/.e-mtrack file ... this
is for debugging purposes and no others
2016-04-21 09:42:13 +09:00
Mike Blumenkrantz fc759b1f0c more accurately reject wl selection setting based on whether serial is invalid
copycopycopycopy
2016-04-20 12:38:08 -04:00
Mike Blumenkrantz 9dd36ff01c apply formatting rules to e_comp_wl_data.c 2016-04-19 17:38:22 -04:00
Mike Blumenkrantz bfd204be71 update wl dnd/clipboard support to v3 of protocol
this code is mostly copied from weston:
78d4bf9a3ec990dceee23fd53962a69891352a0e
9c93179023fe894e417ccd20533d72d672d976fc
b288988e831cee3deb7f8bb1a3f440c86230dd9f
4061e2b67e62d5d2a635f0b87098f331082e8145

credit to Carlos Garnacho <carlosg@gnome.org> as original author

ref T3455
2016-04-19 17:34:58 -04:00
Mike Blumenkrantz 33e23c7364 add copyright headers (MIT) from weston to e_comp_wl_data
these files were created containing code which was very obviously copied from
weston. when copying code, copyright headers must also be copied in order to
comply with licenses.
2016-04-19 17:27:17 -04:00