Commit Graph

9935 Commits

Author SHA1 Message Date
Mike Blumenkrantz a8f9c44b46 remove e_comp_get() function 2015-03-13 15:13:01 -04:00
Yomi b5ed3c9fea change DESKTOP env setting on startup
Summary:
From Enlightenment 17 to Enlightenment.

Seems e17 keeps popping up...
rEdb6aeef2b1a9c831fa0901e499dd8f73ff733836
rEec1cd25cfe666665b9e5641c91d3ad1fd2f9f11c

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2147
2015-03-12 18:55:47 -04:00
Mike Blumenkrantz 289c6f0d1f send client sizes for wl configure events when fullscreening/maximizing 2015-03-12 15:19:52 -04:00
Mike Blumenkrantz b533ad67f3 remove unused wl variables 2015-03-12 15:15:40 -04:00
Mike Blumenkrantz 662d9fea2d don't reset placement of internal wl clients on first commit
fixes placement of evry et al
2015-03-12 15:14:27 -04:00
Mike Blumenkrantz 08328f0c19 conditionally compile elm win trap wayland functionality 2015-03-12 14:28:18 -04:00
Mike Blumenkrantz a7dae25236 Revert "e - fix build when wayland not enabled"
This reverts commit 413ca8046e.

broke wayland runtime: wrong define names, wrong usage
2015-03-12 14:23:22 -04:00
Mike Blumenkrantz 3f8d2d0596 disable wl client hide animations even with gl
broken until we start making textures for rendering clients
2015-03-12 13:24:42 -04:00
Carsten Haitzler 03f05d16e5 e clients - make sure we handle client with a NULL zone 2015-03-11 18:34:38 +09:00
Mike Blumenkrantz d93bb6c899 don't modify pixmap hash when changing pixmap parent window
moderately certain I originally wrote this to work in the other direction
and then failed to remove it when I switched to setting parents instead of
children. regardless, pixmap hash should not be changed here
2015-03-10 18:29:09 -04:00
Mike Blumenkrantz 4c96e40f55 CRI on attempting to change a pixmap's client when pixmap already has client
this should never occur, so do something if it does since it means there's a big problem
2015-03-10 18:28:18 -04:00
Mike Blumenkrantz bb436e6750 don't reuse wl surface pixmaps without adding a ref 2015-03-10 16:37:57 -04:00
Derek Foreman 281f283d7d Wayland: more checks to avoid consuming serials needlessly
Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2135
2015-03-10 16:24:46 -04:00
Mike Blumenkrantz 808ab60181 fix invalid eina list usage when merging wl surface frame list 2015-03-10 16:11:57 -04:00
Bryce Harrington 13f4582c76 wayland: Check for potential OOM from wl_array_add()
Summary:
wl_array_add() returns NULL if it can't malloc/realloc.  This
is probably unlikely but check for it and issue a meaningful error if it
occurs.

Reviewers: cedric, devilhorns, zmike, raster

Reviewed By: raster

Subscribers: raster, cedric

Differential Revision: https://phab.enlightenment.org/D2054
2015-03-10 15:07:38 +09:00
Derek Foreman b7f3a81f59 Send modifiers to wayland clients on focus in
Summary:
If we don't update the modifiers on focus in we can end up with stuck
modifiers if a modifier is held when starting a client.

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2124
2015-03-09 16:37:02 -04:00
Derek Foreman 5c345bf37f Break e_comp_wl_input_keyboard_modifiers_update into two functions
Summary:
Separate the state serialization from the send so we can use the
serialization function elsewhere.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2123
2015-03-09 15:49:08 -04:00
Derek Foreman 8c7364b682 Don't update xkbstate when no app has focus
Summary:
We still update the keyboard array.  focus_in adds everything in the
array to xkbstate anyway, so adding it when there's no focus results
in a double update of state and potentially stuck modifiers.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2111
2015-03-06 18:55:39 -05:00
Mike Blumenkrantz 567802f251 fix crash when using e_comp_object_util_center_pos_get() with non comp_objects 2015-03-06 17:59:43 -05:00
Mike Blumenkrantz 143c0a9292 fix horizontal/vertical smart maximize
fix T2170
2015-03-06 17:16:24 -05:00
Mike Blumenkrantz 7147b7d54b remove unnecessary wl client pixmap checks
these are direct object callbacks so they will only be triggered on wl clients
2015-03-06 16:02:49 -05:00
Mike Blumenkrantz 961a56ea10 use stderr messages when failing to init X compositor
can't show error dialogs when we're about to exit, may as well print something useful

fix T2182
2015-03-06 15:00:52 -05:00
Mike Blumenkrantz 691c5187c2 exit immediately if any unrecognized arg is passed on startup
ref T2182
2015-03-06 14:57:58 -05:00
Mike Blumenkrantz e8d408650f disable wl clients in X
this is untested and undeveloped, no point in leaving it around to crash randomly
2015-03-06 14:52:12 -05:00
Derek Foreman 6e4214c8ad Fix stuck modifiers on client exit
Summary:
We still need to remove the active keys when focus_out happens, even
if the pixmap is already gone.  If we don't and a modifier was held
down during exit then the xkb state will have that modifier stuck
forever.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2110
2015-03-06 13:08:24 -05:00
Mike Blumenkrantz 08b9194c12 don't require client mirror object existence to hide dead comp object mirrors 2015-03-05 14:57:49 -05:00
Mike Blumenkrantz 02134369c0 only hide comp object images for dead clients on smart hide 2015-03-05 12:44:27 -05:00
Mike Blumenkrantz b9f797a277 flag non-internal wl shm clients as dead and delete mirrors on hide
no more crashing?
2015-03-05 12:18:27 -05:00
Mike Blumenkrantz 6696c99a26 trivial move comp object function 2015-03-05 12:18:06 -05:00
Mike Blumenkrantz 38e12a0370 add E_Client->dead to mark clients that should immediately be removed from the compositor
theme_shadow was unused
2015-03-05 12:16:53 -05:00
Mike Blumenkrantz 7e8d442ac3 force non-internal wl clients to hide when gl is not available 2015-03-05 11:59:29 -05:00
Mike Blumenkrantz caddd0f1d5 hide comp object image on smart hide
ensure that this is not being rendered anywhere at the time of hide
2015-03-05 11:56:26 -05:00
Mike Blumenkrantz 230033aa67 Revert "when we get a request to close client app, defer resource deletion"
This reverts commit 1cf7c1f151.

didn't fix the issue and obfuscated the code unnecessarily
2015-03-05 11:41:43 -05:00
Mike Blumenkrantz c9ef6e5c77 re-setting same cursor object updates hotspot as expected 2015-03-05 11:27:23 -05:00
Mike Blumenkrantz ac7a94261a never resize client clip object 2015-03-04 17:07:39 -05:00
Mike Blumenkrantz a38a34d599 set ec->fullscreen before applying fullscreen geometry 2015-03-04 15:52:16 -05:00
Mike Blumenkrantz de17793fe3 reapply wl surface focus during commit when necessary 2015-03-04 15:36:23 -05:00
Mike Blumenkrantz b069009a16 grab wl shell surface geom and use for adjusting resize operations
I think this still may not be 100% perfect,
but it's more like 95% perfect now instead of 50%
2015-03-03 16:48:25 -05:00
Chris Michael bc160488d8 enlightenment: Implement support for wl_data_device_interface "release" event
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-03 11:59:52 -05:00
Chris Michael 6e34bc32a0 don't install SIGBUS handler if we are running wayland-only
Wayland shm sets up a sigbus handler for catching invalid shm region
access. If we setup our sigbus handler here, then the wl-shm sigbus
handler will not function properly

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-03 09:54:23 -05:00
Chris Michael 1cf7c1f151 when we get a request to close client app, defer resource deletion
until After close animation has been run

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-02 15:42:26 -05:00
Mike Blumenkrantz c6f0597774 remove ec->awaiting_hide_event
no longer used
2015-03-02 14:27:29 -05:00
Mike Blumenkrantz e703b40073 improve wl grab resize calcs 2015-02-28 16:48:07 -05:00
Mike Blumenkrantz f62ab0a819 update+clamp wl surface client size to buffer size during commit
this is the same as the X render loop behavior, just in a different place
2015-02-28 15:46:16 -05:00
Mike Blumenkrantz 57c36f92a2 send different values to wl clients for configure when performing a resize action
the calculated values here seem to not be sufficiently accurate to manage a calculated resize.
instead, calc relative pointer coords and send them

 #barrel
2015-02-28 15:43:12 -05:00
Chris Michael 327e422aab set output->scale to e_scale, and when we wl_output_send_scale
actually send output->scale

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-28 11:36:42 -05:00
Bryce Harrington f92e241e8e wayland: Make sure we're initializing output scale sensibly
Summary:
By default the E_NEW() will create our output objects with a 0.0 scale,
which doesn't make any sense and if anything will lead to crashes.
Instead use a scale factor of 1.0.

When updating output details, if the scale setting is invalid then set
it to 1.0 as a sensible value.

Note this doesn't actually enable scaling, just helps make sure we're
not injecting invalid scale parameters from the start.

Reviewers: zmike, devilhorns, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2078
2015-02-27 19:45:25 -05:00
Bryce Harrington 9a4024a20a wayland: Refactor output initialization code
Summary:
The code to initialize outputs has duplicate stanzas for updating the
data members of the output structure.  This set of refactoring steps
shuffles things around to eliminate the redundant code.  I think this
also makes the code easier to follow too.

This also breaks out a new internal routine for looking up outputs by
id.  I suspect this will have general usefulness later.

Reviewers: devilhorns, cedric, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2077
2015-02-27 19:23:11 -05:00
Mike Blumenkrantz 5bac79422e remove wl client resize idler, send ec->w/h instead of ec->client.w/h on resize
this idler makes sense in X where there is a third party display server but not in wl
2015-02-27 15:56:14 -05:00
Mike Blumenkrantz 2e6c593295 noop when setting pointer object if re-setting same object 2015-02-27 15:07:24 -05:00
Chris Michael 8a76018025 remove missed use of E_COMP_WL_PIXMAP_CHECK macro
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-27 10:59:59 -05:00
Bryce Harrington c802239534 wayland: Document the public API
Summary: Add doxygen comments for public API members

Reviewers: zmike, cedric, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2067
2015-02-27 09:24:59 -05:00
Bryce Harrington 8441520030 wayland: Eliminate extraneous E_COMP_WL_PIXMAP_CHECK macro
Summary:
Many of the functions in the compositor do some preliminary checks, to
ensure objects are valid and the right type.  Most of the checks follow
a consistent pattern, for example:

    if (!(ec = data)) return;
    if (e_object_is_del(E_OBJECT(ec))) return;
    if (ec->iconic) return;

This style makes it pretty straightforward to review the pre-conditions
of the function.

The one exception is the check to see if an object is a wayland pixmap;
this is implemented as a C macro.

     E_COMP_WL_PIXMAP_CHECK;

The name of the macro is descriptive enough, but it conceals what is
actually being checked.  I think that it is clearer and fits better with
the style of the rest of the pre-condition checks for this check to just
be shown as regular C code:

     if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return;

Reviewers: zmike, cedric, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2066
2015-02-27 09:21:55 -05:00
Bryce Harrington 82e155eac6 wayland: Fix missing check on E_NEW return
Summary:
All other E_NEW calls in this file check the return value, except this
one place.  In this function, other calls are being checked for NULL and
handled so this one should as well.  The other handlers in this function
follow the style of issuing an error message, freeing objects, and
returning false; we don't need to free anything so just do the error
message and return.

Reviewers: zmike, cedric, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2065
2015-02-27 09:18:27 -05:00
Mike Blumenkrantz 8b40a12899 update wl xdg states on maximize/fullscreen events 2015-02-26 22:32:14 -05:00
Mike Blumenkrantz 69c4bc64db don't send wl mouse button events when client's menu is active 2015-02-26 21:55:34 -05:00
Mike Blumenkrantz e908d9a838 unify wl comp mouse button callback checks 2015-02-26 21:54:17 -05:00
Bryce Harrington 126d658914 wayland: Whitespace cleanup
Summary: Cosmetic

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2061
2015-02-26 16:42:27 -05:00
Mike Blumenkrantz b06111b00e reject ignored clients from client mouse event functions 2015-02-26 16:17:10 -05:00
Chris Michael 35c3eb7dcf fix compile issue due to output change and fixup subsurface creation to match new "state" paradigm
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-26 15:33:40 -05:00
Chris Michael b6be9efe26 Implement buffer_reference to fix client resizing issue
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-26 15:33:40 -05:00
Chris Michael 88f44e1a1d adjust wayland compositor scale when we adjust e_scale
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-26 15:33:40 -05:00
Chris Michael 0ac3045827 add a surface_state structure to E_Comp_Wl_Client_Data
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-26 15:33:39 -05:00
Derek Foreman dd2058d8a6 Don't crash when an error pop-up occurs before the compositor is set up.
Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2059
2015-02-26 14:43:10 -05:00
Bryce Harrington 5bebba3036 wayland: Refactor out common mouse handling code
Summary:
These two functions are nearly identical so move much of the common code
into a helper function.

Reviewers: cedric, devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2053
2015-02-25 22:00:11 -05:00
Manuel Bachmann a5a27dee14 build: allow building in pure Wayland mode (no xcb, no ecore-x)
Summary:
We should be building Enlightenement with "--enable-wayland-only"
even if xcb, ecore-x... are not present. The Evas wayland-shm
engine will then be a prerequisite, though.

E_Alert being too much X11-oriented, let us disable it completely
before it is ported.

Also, do not require the X11 rendering engines at runtime.

Reviewers: stefan, devilhorns

Reviewed By: devilhorns

Subscribers: stefan_schmidt, stefan

Projects: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D1986
2015-02-25 09:33:40 +01:00
Carsten Haitzler 6097f06b26 e - menus - fix submenu popup direction when zones are not at 0 y 2015-02-25 15:55:08 +09:00
Carsten Haitzler 03c53655ce e - menus - fix autoscroll on zones not at 0 y... 2015-02-25 15:31:00 +09:00
Bryce Harrington 89dbb9bd27 cosmetic: Whitespace cleanup of wayland client files
Summary:
cosmetic: Cleanup whitespace for wayland compositor

There is excess trailing whitespace in several of the files for the
wayland implementation.  These patches attempt to apply the spacing
rules for Enlightenment as documented at:
https://phab.enlightenment.org/w/coding_convention/

The whitespace rules are applied using the following emacs tabbing
settings:

 (defun start-efl-c-mode ()
  "C mode with adjusted defaults for use with Enlightenment
  development."
  (interactive)
  (c-mode)
  (c-set-style "gnu")
  (setq tab-width 8)
  (setq indent-tabs-mode nil)
  (setq c-basic-offset 3)
  (setq defun-block-intro 3)
  (setq statement-block-intro 3)
  (setq case-label 1)
  (setq statement-case-intro 3)
 )

This patchset also eliminates all tabs in favor of whitespace, as per
the coding style rules.

Reviewers: zmike, cedric, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2048
2015-02-24 17:34:20 -05:00
Chris Michael e8d0ac4f2d append E_Comp_Wl_Output to compositor's output list during output_init
call

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-24 15:27:48 -05:00
Chris Michael e36d2f5235 don't remove E_Comp_Wl_Output on unbind as this Could lead to nasty
crashes if a second client tries to bind wl_output

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-24 15:17:07 -05:00
Derek Foreman 1da3aa24dd Fix wl_output tracking in wayland compositor
Summary:
We should keep a list of resources per output to propagate wl_output
changes to each client that bound an output.

The output list now contains all outputs, not just bound ones.

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2047
2015-02-24 15:10:37 -05:00
Bryce Harrington 40998b8a6e Code cleanup and check for OOM condition with wl_array_add
Summary:
wayland: Check wl_array_add return for OOM condition
cosmetic: Make error return check syntax consistent with rest of code
wayland: Reuse use_adj to track child-forced adjust
wayland: Refactor to collapse if chain
wayland: Refactor _e_comp_wl_client_priority_adjust to collapse if chain
 + This uses early returns to unwrap a couple if clauses to make the code a bit less nesty.
wayland: Refactor if statements for consistency with rest of file

Reviewers: cedric, zmike, devilhorns

Subscribers: devilhorns, cedric

Differential Revision: https://phab.enlightenment.org/D2034
2015-02-24 14:47:56 -05:00
Chris Michael a8eb773752 Fix T2131 (crash when creating wl_outputs)
This fixes the crash and creates outputs based on e_randr
configuration (when in wayland-client mode).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-24 13:25:22 -05:00
Chris Michael be6c62eb34 add E_Comp_Wl_Output structure and function prototype to create outputs
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-24 13:24:56 -05:00
Carsten Haitzler c28e58284a efm - make dir listing far faster - no file magic content and dont sync
this speed sup dir listing in efm drastically. first the e fm back end
uses an io thread that just spools through everything fast and sends
it over the mainloop to then send by ipc to e.

and on the e side we no longer use the heavy file internal magic using
api calls that wander all over a file for magic numbers - this is
insanely slow and brings listing to a crawl.
2015-02-24 18:36:31 +09:00
Mike Blumenkrantz 7d5d2c83d1 don't clamp bgpreview vsize if bgpreview is a fullscreen overlay 2015-02-23 17:31:52 -05:00
Mike Blumenkrantz 1a011b0fd5 fix dialog sizing when icon setting fails 2015-02-23 16:48:09 -05:00
Carsten Haitzler 7faf6666e5 e - actions - smart suspend/hibernate - also dont do when on mains power 2015-02-23 12:11:50 +09:00
Carsten Haitzler e60889981e randr2 - handle missing clone src and walk back config only structs 2015-02-23 12:11:46 +09:00
Mike Blumenkrantz 9dee41f1a3 do not reapply focus on canvas object ungrab/close for pointer-focus enthusiasts 2015-02-20 09:55:20 -05:00
Chris Michael 8e6d512076 change output_bind function name
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-19 17:02:46 -05:00
Chris Michael 6458ac3f8e fix some formatting ugliness
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-19 17:02:04 -05:00
Chris Michael 2d4db291d2 fix compiler warning about pointer targets differ in signedness
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-19 17:00:24 -05:00
Derek Foreman 4276b3ac55 Provide wl_output interface to clients
Reviewers: devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Maniphest Tasks: T2131

Differential Revision: https://phab.enlightenment.org/D2007
2015-02-19 14:49:01 -05:00
Mike Blumenkrantz 23c4d42e4c rename extremely frustratingly-named E_Screen_Limits enum and members
this came in a patch that I take full responsibility for not adequately reviewing at the time.
the names are confusing and counterintuitive, and it does not properly include the client namespace.
2015-02-18 18:34:29 -05:00
Mike Blumenkrantz 1f21efd911 clamp client size to screen when client limit policy does not allow offscreen
fix T1779
2015-02-18 18:26:16 -05:00
Mike Blumenkrantz baa9cfeac1 don't send unfocused signal to override clients
fix T2099
2015-02-18 16:35:10 -05:00
Mike Blumenkrantz 7b53d6b19c use direct path for setting icons in util theme set function when icon is a path
fix T1888
2015-02-18 16:14:09 -05:00
Tom Hacohen 86654c86f8 Allow building without ptrace
Summary: Building without ptrace (on OSes which do not support it, like OpenBSD) did not work, because the fallback code had small typos.

Reviewers: devilhorns

Projects: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D1990
2015-02-18 12:36:20 +00:00
Mike Blumenkrantz fbad4c7fd8 block linear desk flips that would wrap if desk flip wrapping is disabled
fix T1948
2015-02-17 18:54:39 -05:00
Mike Blumenkrantz 1a4be248fe don't revert X focus during nocomp 2015-02-17 18:42:47 -05:00
Mike Blumenkrantz 6e504751b1 revert some comp object debugging bits that snuck into another commit 2015-02-17 17:21:37 -05:00
Chris Michael 0094ba4bf7 enlightenment: Fix building for wayland-only
We don't have e_randr2 calls for wayland yet, so ifdef those out if we
are building for wayland only

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-17 10:46:19 -05:00
Vincent Torri f31ed5bcb1 add MIN define for non-linux systems 2015-02-15 17:54:10 -05:00
Carsten Haitzler c37a55d573 actions - add smart suspend + hibernate actions for laptop usage
this adds 2 actions that only suspend a laptop (or hibernate) if there
are no external screens enabled. if there is no lid screen eg like a
desktop, then it will still go on as usual.
2015-02-15 10:53:54 +09:00
Mike Blumenkrantz 1d069ab3b6 add ctrl+alt+backspace to kill wl-only e
#barrel
2015-02-13 16:40:14 -05:00
Mike Blumenkrantz 1301453fa4 only reject client mouse out for X clients
not sure this is still applicable since systray xembeds are gone
2015-02-13 16:24:24 -05:00
Mike Blumenkrantz 62328e0c90 remove wl override clients from focus stack
no more client cursor clients in winlist hoorayyyyy
2015-02-13 15:48:00 -05:00
Mike Blumenkrantz e2b02d07d5 add first YOLO: e_client_focus_stack_set()
to quote ecore docs:

DO NOT use this function unless you are the person God comes to ask for
advice when He has trouble managing the Universe.
2015-02-13 15:46:52 -05:00