Commit Graph

16441 Commits

Author SHA1 Message Date
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
Mike Blumenkrantz e6c47e8d90 disable fileman popups in wl-only mode
these crash for now and I'm annoyed
2015-02-27 14:45:45 -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 d576c58bd7 clamp to parent height, not parent y co-ordinate.
Summary:
Clamping to Y makes pop ups get shifted up if a window is
near the top of the screen.

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2060
2015-02-26 15:27:52 -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
Mike Blumenkrantz b0613520a2 pre-escape all notification body texts before display or merge
this fixes notification merging again

ref T2053
2015-02-25 20:06:45 -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 9e585e3f79 remove unused variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-24 15:36:34 -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 d89681fa3c create wl_outputs when in wayland-only mode
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-24 13:27: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 cc5a4e9071 fix border frame color classes to be configured as solids, not text
fix T1637
2015-02-23 17:54:09 -05: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 f6b3c1533e fix appindicator icon loading when using IconThemePath key
fix T1888
2015-02-23 17:22:51 -05:00
Mike Blumenkrantz a4477e16e4 set default text for edgebindings caption when no bindings exist 2015-02-23 16:53:20 -05:00
Mike Blumenkrantz 1a011b0fd5 fix dialog sizing when icon setting fails 2015-02-23 16:48:09 -05:00
Mike Blumenkrantz 5160707eb2 remove unnecessary icon setting and fix sizing in edgebindings
ref T2144
2015-02-23 16:47:53 -05:00
Yomi 9e5264fa84 Fixed tense in presentation mode notifications.
Summary: Fixed tense in presentation mode notifications.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2020
2015-02-23 15:26:17 -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