Commit Graph

21052 Commits

Author SHA1 Message Date
Mike Blumenkrantz 87d4e254f0 pre-remove pixmap from x11 clients during del hook
this breaks the compositor!

ref 0ca200513e
2016-02-19 18:02:54 -05:00
Mike Blumenkrantz 3f3ed7ae99 reshuffle x11 comp init to cleanup on failure cases
in the event of a wayland start, x11 comp init will fail, meaning that
cleanup must occur in order to avoid erroneous triggering of x11 handlers

 #TooSoon
2016-02-19 17:07:03 -05:00
Derek Foreman 625e417bb2 Remove wayland focus timer in delete callback
If we don't remove it now it could fire later when the structures
it depends on are already freed.
2016-02-18 12:40:52 -06:00
Derek Foreman 106be5f1e2 Bump wayland version requirement
We need 1.10 for the shm pool referencing api
2016-02-18 12:31:31 -06:00
Derek Foreman 0ca200513e Move pixmap free to client free from client destroy
Under wayland we need the pixmaps to exist until after the close
animations finish, even if clients can perform new rendering.

@fix
2016-02-18 12:31:31 -06:00
Derek Foreman b30c96e142 Use eina_list_merge instead of eina_list_move for wayland lists
We should use eina_list_merge for concatenating lists instead of
eina_list_move.
2016-02-18 12:31:31 -06:00
Derek Foreman 6a65d2a546 Protect the wayland frame callback list from corruption
The resource destroy callback for frame callbacks will walk the frame list
to remove itself.  When freeing that list we need to make sure the
resource destroy callback doesn't see the same list we're walking and
corrupt it.
2016-02-18 12:31:31 -06:00
Derek Foreman 6f3e670f75 Fix xdg-shell destructors
_e_shell_surface_destroy() is already the implementation's destructor, so
it'll be called when the surface is destroyed anyway.  What we have to do
here is just call wl_resource_destroy(resource) - which will call that
function for us.

It'll also do us the favor of actually destroying the resource and
removing it from the client's resource list so we won't get a SECOND call
to _e_shell_surface_destroy() on client exit.
2016-02-18 12:31:31 -06:00
Derek Foreman 7063aa3bb8 Initialize pointer before passing to e_wheel_bindings_find()
It's going to dereference it, so init it to NULL.
2016-02-18 12:31:31 -06:00
Derek Foreman c373331f94 Remove wayland frame callbacks from subsurface cache on destruction
There are 3 places a frame callback could be hiding.  frames list,
pending.frames list, or subsurface cached.frames list.  We weren't
clearing it from the subsurface cache on destruction.
2016-02-18 11:51:10 -06:00
Derek Foreman cd3a071519 Initialize pointer before calling e_bindings_mouse_button_find()
The pointer is dereferenced, so it should have an initialized value.
2016-02-18 11:50:18 -06:00
Mike Blumenkrantz 3f82a7f1fb return no binding found when trying to incrementally resolve end-of-list mousebinds
in the case where every binding until the end of the binding list has been rejected,
returning NULL must happen in order to inform callers that there is no more resolving
to be done, breaking out of an otherwise infinite resolve loop

ref fe5d2e6e61
2016-02-17 12:36:34 -05:00
Mike Blumenkrantz c14adb768f improve enforcement of shelf autohide-related window adjustment
for whatever reason, there's a global option which makes windows adjust
when a shelf autohides as well as a per-shelf option to ignore the global
option

in the case where the global option is not enabled, there is no reason to
check the per-shelf option

ref 5d63b07ca3
2016-02-17 11:36:30 -05:00
Derek Foreman 3e9029ea08 Ensure wayland clients haven't been deleted when processing callbacks
Summary:
It's apparently possible to trigger at least some of these by interacting
with a client as it's closing, so add a bunch of checks.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3699
2016-02-16 16:41:03 -05:00
Mike Blumenkrantz a9b4754776 do not clamp comp object input regions to 0,0
this breaks input for clients using csd which are aligned at x|y axis
2016-02-16 15:36:56 -05:00
Gustavo Lima Chaves 92eb0572e2 e/quickaccess: Make "Skip window list" a quickaccess behavior option too. 2016-02-16 14:19:04 -02:00
Carsten Haitzler 97525a44d1 e po: add completeness lister script into po dir
./complete *.po

:)
2016-02-15 11:41:05 +09:00
Mike Blumenkrantz e8b8fe8310 add flag for zone obstacles to indicate verticality
I added a lower quality and less precise workaround for this before
since I didn't have enough test cases to think of something which would
be suffiently good to handle all cases.

as a result, initial calculations for obstacles would incorrectly detect
horizontally-oriented obstacles as being vertical, causing inconsistencies
in window placement. this would become even more severe if the obstacle
never resized itself, erroneously modifying window placement to position
around obstacles which did not exist

having a hint on the obstacle to indicate a direction is sufficient for
most cases, specifically zone useful geometry calcs, where obstacles are
expanded to cover the entire screen on which they reside and must expand
accurately based on the orientation of the obstacle

ref 10c43efc83
2016-02-08 14:52:55 -05:00
Mike Blumenkrantz 7d3319e6ee do not perform special case position adjustment for re_manage clients
this case is solely for handling clients which are created with nonzero
position, eg. an x11 window trying to display itself centered upon initial
creation. re_manage indicates a window which is re-managed after a restart of
enlightenment, so these windows clearly do not fall into that case

fixes an issue where windows would move up+left by the size of their frame during
restart

ref 95e133282e
2016-02-08 14:52:55 -05:00
Mike Blumenkrantz 493f6f595b Revert "e - restart window positioning - fix it"
This reverts commit d0229b3652.

see following patches
2016-02-08 14:51:21 -05:00
Carsten Haitzler d0229b3652 e - restart window positioning - fix it
so every time i restart e i have my windows all messed up. it's
INSANELY annoying and time consuming every single time having to move
a dozen or more windows back to where they should be just because i
restarted e. i've narrowed it down to 2 places. 1 which is trying to
handle "out of screen" windows and during startup it seems things are
not quite stable yet as the randr code figures things out until the
event storm settles down.

when this is then fixed - another bit of code just shuffles windows up
all the time by a titlebar whcih is also supremely annoying. this is
the code that adopes a new frame for a window.

so the nasty hack to avoid piles of pain right now is for the first 5
seconds of e's life - don't do this stuff. at least you can now use e
and not be annoyed to hell and back every restart.

yes a nicer fix may be better - but that's going to take a lot more
time and patience and until then - this will do.
2016-02-06 11:31:01 +09:00
Carsten Haitzler e75af1536d Revert "e bg: remove debug printf"
This reverts commit 77c2a2a3d1.

oops - i forgot i had all this other debugging there
2016-02-06 10:29:04 +09:00
Carsten Haitzler 77c2a2a3d1 e bg: remove debug printf 2016-02-06 10:27:09 +09:00
Mike Blumenkrantz e7a40cfc5f remove debug printf from e_bg
ref be1b11ca28
2016-02-05 13:29:44 -05:00
Carsten Haitzler 99a98997ad e - bgpreview widget - fix sizing of normal wallpapers after video add
sizing of bg previuews with normal edje wallpapers broke when adding
in video - fix back to where it was and working again
2016-02-05 22:01:27 +09:00
Carsten Haitzler be1b11ca28 e - video bgs - allow selection of video files for wallpapers
this allows video files to be played for wapapers - they loop and run
indefinitely. it is a special video object that shares the same source
across all outputs, so if you have the same video set, on 2 screens
(or desktops) then it's only decoded once and uses proxies to
ducplicate. this works in the pager too (it uses proxies).

this is for amusement and fun and ... because we can. :)
2016-02-05 18:35:49 +09:00
Carsten Haitzler 26a7ba3a58 e comp: fix crashes on exit/restart when e_comp is NULL
when we are shutting down i seem to get into a state where e_comp is
null yet we are still processing events. this fixes that and checks.
2016-02-05 18:35:49 +09:00
Mike Blumenkrantz b9c45c6159 check whether to reapply all callbacks for comp util objects when changing type
in the case where the existence of a zoomap in the comp frame edje has changed
during the course of changing the type, these callbacks must be updated with new
data params in order to ensure accurate operations during callbacks
2016-02-04 16:24:44 -05:00
Chris Michael 38d3654982 only specify sw, sh, fh variables if we intend on using them
This patch fixes an issue where building with wayland support but
disabling wl_drm module would cause compiler warnings about these
variables being defined but not used

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-04 13:14:29 -05:00
Mike Blumenkrantz 896781204f clamp minimum shelf size to 20px in shelf config
the majority of gadgets do not render correctly/anything under this size,
so allowing it to be set is not going to be helpful to anyone
2016-02-04 12:58:38 -05:00
Mike Blumenkrantz 733224241f require efl 1.17 2016-02-04 12:58:37 -05:00
Mike Blumenkrantz a2279cf119 remove efl version check macros in xwayland dnd handlers 2016-02-04 12:58:37 -05:00
Chris Michael 04e108dbac correctly wrap 1.18 API function calls
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-04 11:19:56 -05:00
Chris Michael b88e8b7a4d wrap 1.18 drm rotation functions around #ifdefs
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-04 11:17:48 -05:00
Chris Michael 04ea946f3d Add support for configuring output rotations
When running under DRM, this patch adds support for getting the
supported rotations of an output, listing them in the Screen Setup
dialog, and adds the ability to set a rotation on a given screen

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-04 09:16:02 -05:00
Mike Blumenkrantz fe5d2e6e61 add bool return for mouse-based E_Action callbacks
in many cases, a mouse action's callback will fail to execute as a result of multiple
objects being under the pointer at the time of the event. in this case,
the callback should be able to determine whether action callback processing should
continue.

as an example, when attempting to execute an action which only activates for
client objects, if the passed object is not a client then the callback should return
false to indicate that it was not able to perform the action for the given object,
allowing further actions to be attempted on this object
2016-02-03 18:09:18 -05:00
Mike Blumenkrantz 39c6f1c33a ignore subsequent bindings with ANY context after finding a previous ANY binding
if multiple ANY bindings exist for a given event, return the first one found
2016-02-03 18:09:18 -05:00
Chris Michael 35ade92624 update mailmap addresses
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-02 15:02:12 -05:00
Chris Michael 0aa683b97c update mailmap addresses
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-02 14:03:37 -05:00
Mike Blumenkrantz 331a3e74e1 disable map when unsetting zoomap child
if the existing map is left enabled when the child is removed from the
zoomap, the child object will be permanently misrendered with the previously
applied map
2016-02-01 17:31:20 -05:00
Mike Blumenkrantz 6a4488faea set child of zoomap as new content for comp util objects when changing type
the zoomap is deleted here anyway, so all this does is crash

ref 980135fc38
2016-02-01 17:23:02 -05:00
Mike Blumenkrantz b5103ac3e2 compare key OR keyname in e_bindings_key_event_find()
keys such as tab will have different names in key and keyname, eg.
"Tab" vs "ISO_Left_Tab", and both names are valid for comparisons

thanks to @billiob for pointing out this regression
2016-02-01 11:31:57 -05:00
Mike Blumenkrantz 782cf3606e send mouse out+in on desk flip end
this triggers mouse in events on objects under the mouse in order to
forcibly reapply focus for mouse-based focus policies

fix Tfrance
2016-02-01 11:04:38 -05:00
Mike Blumenkrantz ac6e800c35 enable drm e_alert during configure only if drm support is enabled 2016-02-01 11:04:38 -05:00
Mike Blumenkrantz 6544ae2c65 add back binding key->keyname check in e_bindings_key_event_find()
second copy/paste failure of the day...
2016-01-25 16:56:52 -05:00
Mike Blumenkrantz d6772d8911 update xkb.cur_group and send event upon serializing an EFFECTIVE layout in wl input
according to xkbcommon, the group returned from serializing the EFFECTIVE layout
is the one which is currently active. this array index should match up with the
list used in the xkb part of E_Config
2016-01-25 16:33:49 -05:00
Mike Blumenkrantz 8678e01ce9 do not update keymap group in _e_comp_wl_input_keymap_update()
this state is dead, and any group changes which have been made should
be reapplied based on the new state
2016-01-25 16:33:49 -05:00
Chris Michael c692381f2e add missing EINA_UNUSED for _xkb_changed_state function
This function does not use the event parameter, so mark it as unused

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-01-25 14:02:48 -05:00
Mike Blumenkrantz 10c43efc83 fill zone obstacles on x/y axis during useful geometry recalc
this fixes an issue where shrinking vertical shelves would cause vertically
maximized windows to always match the height of the shelf

possibly needs improving later depending on usage of zone obstacles in
the future...
2016-01-25 13:45:47 -05:00
Mike Blumenkrantz ea2ec5a2f3 use desk obstacles for calculating desk-specific zone useful geometry
typo--
2016-01-25 13:41:13 -05:00