Commit Graph

19330 Commits

Author SHA1 Message Date
Mike Blumenkrantz d9c03f1059 use fake xinerama screens when initializing wl outputs
always ignore physical screens if fake ones are present
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz 9f5a07d788 hook client object unref callback to cleanup comp object internals
ensure cleanup occurs before client object is freed
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz 4933569bc1 don't null pointer after deleting internal win during wl delete request
this is invalid during a logout
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz 5e7ca478d0 route all mouse movements to action_client during action grab
ensure client receives all necessary mouse events
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz b48419c577 only remove left/right maximize when removing vertical if left/right is set
avoid accidentally removing horizontal maximizes
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz c2e891bbf4 update wl_drm for recent efl_input_device api changes
@jpeg plz http://i1.kym-cdn.com/photos/images/original/000/312/563/05d.jpg
2017-06-12 05:48:32 -04:00
Mike Blumenkrantz b4e96a0aea feed mouse up during window maximize if the current window is being dragged
prevent window from accidentally toggling its maximize state repeatedly
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz 7d39be8c4a send nograb signal to ssd theme on creation
disable pointer grabs on ssd borders

edge bindings can now be triggered during window drags

fix T5552
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz f396d3fe42 re-enable zone edges during window_move action
this can now be sensibly handled without accidentally sending input to
every object on the canvas

ref T5552
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz d0f45a48a4 use event_grabber to simulate explicit grab during window move/resize actions
this grabs the client's frame as well as any existing edge objects during drags

ref T5552
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz b0a7c98faf do not trigger events/bindings on zone object events with timestamp==0
these are internal event feeds and should not trigger additional actions
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz 41a5fe2708 delete client raise timer when beginning a move/resize operation
this breaks things in subtle ways
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz 9f48fd5a9c perform client raise before triggering move/resize BEGIN client hook
hooks may further modify stacking, so ensure any changes are done before
that point
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz b98854b17b remove client callback from luncher icon when necessary
==20443== Invalid read of size 8
==20443==    at 0x28CED526: _bar_exec_new_show (bar.c:980)
==20443==    by 0x819D78D: _eo_evas_object_cb (evas_callbacks.c:184)
==20443==    by 0xDFB6FED: _event_callback_call (eo_base_class.c:1496)
==20443==    by 0xDFB7373: _efl_object_event_callback_legacy_call (eo_base_class.c:1569)
==20443==    by 0xDFB743A: efl_event_callback_legacy_call (eo_base_class.c:1572)
==20443==    by 0x81DC562: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:993)
==20443==    by 0xDFB743A: efl_event_callback_legacy_call (eo_base_class.c:1572)
==20443==    by 0x819E1F8: evas_object_event_callback_call (evas_callbacks.c:404)
==20443==    by 0x81E6B23: evas_object_inform_call_show (evas_object_inform.c:13)
==20443==    by 0x81DECA2: _show (evas_object_main.c:1689)
==20443==    by 0x81DF0E7: _efl_canvas_object_efl_gfx_visible_set (evas_object_main.c:1810)
==20443==    by 0xDD670B9: efl_gfx_visible_set (efl_gfx.eo.c:21)
==20443==    by 0x81DEA93: evas_object_show (evas_object_main.c:1639)
==20443==    by 0x483706: _e_comp_intercept_show_helper (e_comp_object.c:1754)
==20443==    by 0x483761: _e_comp_intercept_show (e_comp_object.c:1768)
==20443==    by 0x81E7536: evas_object_intercept_call_show (evas_object_intercept.c:71)
==20443==    by 0x81E7ED2: _evas_object_intercept_call_internal (evas_object_intercept.c:103)
==20443==    by 0x81E88B0: _evas_object_intercept_call_evas (evas_object_intercept.c:236)
==20443==    by 0x81DF0CA: _efl_canvas_object_efl_gfx_visible_set (evas_object_main.c:1807)
==20443==    by 0xDD670B9: efl_gfx_visible_set (efl_gfx.eo.c:21)
==20443==    by 0x81DEA93: evas_object_show (evas_object_main.c:1639)
==20443==    by 0x4A6793: _e_desk_show_begin (e_desk.c:821)
==20443==    by 0x4A4E39: e_desk_show (e_desk.c:312)
==20443==    by 0x537C2E: _e_int_menus_clients_item_cb (e_int_menus.c:1624)
==20443==    by 0x548D3F: _e_menu_active_call (e_menu.c:2056)
==20443==    by 0x54ABFB: _e_menu_cb_mouse_up (e_menu.c:2789)
==20443==    by 0xC636B66: _ecore_call_handler_cb (ecore_private.h:325)
==20443==    by 0xC637B3F: _ecore_event_call (ecore_events.c:518)
==20443==    by 0xC641158: _ecore_main_loop_iterate_internal (ecore_main.c:2397)
==20443==    by 0xC63EC7E: ecore_main_loop_begin (ecore_main.c:1299)
==20443==    by 0x43DE81: main (e_main.c:1081)
==20443==  Address 0x20 is not stack'd, malloc'd or (recently) free'd
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz b76972b162 remove misleading null checks from _bar_cb_client_remove()
client events cannot be triggered without a client
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz f16df40d2b use correct event struct in luncher's _bar_cb_client_remove() 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz ca1638c672 simplify handling of new exec clients when adding luncher icons 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz afcf6c6073 simplify _bar_check_for_duplicates() in luncher 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz 79ed10927e preserve cursor state in drm output during vt switch
#wew

ref T5483
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz 58226266fd store current pointer client into pointer struct 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz bf157e03dc another fix for e_comp_wl->ptr.x/y coords being wl_fixed instead of ints
ref 2c7e91d38f
2017-06-09 20:18:13 -04:00
Stephen 'Okra' Houston 16c05faabd Luncher: Allow the size of previews to be configurable. 2017-06-09 14:21:12 -05:00
Stephen 'Okra' Houston 7ff0e585ac Gadgets: Remove the word "Gadget" from the name of gadgets. 2017-06-08 15:27:24 -05:00
Derek Foreman 2bd4a9dc85 clean up some code
remove write-only variable in the pixmap struct
2017-06-07 12:12:16 -05:00
Derek Foreman 71f70ad8a5 Fix unused var compiler warning in wl_drm
Unused variable after my session activation cleanup
2017-06-07 12:11:59 -05:00
Derek Foreman b37acd6e39 Revert "Stop misuing EVAS_NATIVE_SURFACE_VERSION macro"
This reverts commit 4a40614f2f.

Apparently this macro is unlike similar macros in other libraries
that have more sensible semantics.
2017-06-06 16:42:01 -05:00
Derek Foreman 4a40614f2f Stop misuing EVAS_NATIVE_SURFACE_VERSION macro
We should be stating the version the code supports, not the version
that the EFL version we compiled against supports.
2017-06-06 16:28:20 -05:00
Derek Foreman 52c379f4b2 Remove some duplicate operations
the native surface version was set outside of the switch statement,
so we don't need to re-set it to the same thing here.
2017-06-06 16:28:20 -05:00
Mike Blumenkrantz 1f2b95ae4f use FOREACH_SAFE when walking client list during logout
internal clients can be instantly destroyed and removed from the list
2017-06-02 15:46:26 -04:00
Derek Foreman 239101d95f Fix wl_drm session (de)activation callback
I missed this in my last commit - we probably shouldn't be calling
e_comp_render_queue or e_comp_shape_queue_block() after hiding the
ecore_evas anyway - and by removing the e_comp_shape_queue_block()
in the activation callback I made things asymmetrical.  Ungood.
2017-06-02 13:59:42 -05:00
Derek Foreman 5ce8bf3992 Fix wl_drm session activation callback
The code intended to force evas to redraw when we switch back from
another virtual console is failing to do so.  Remove it and replace
it with simpler code that successfully forces a redraw.
2017-06-02 13:49:06 -05:00
Derek Foreman 4fca111eb5 Don't require dmabuf buffers to be writeable
Compositor doesn't need to write to this buffer, and most clients won't
allocate them in a way that the compositor can.  Relax the test criteria.
2017-05-30 11:58:32 -05:00
Mike Blumenkrantz 15ea942ab8 update wl input to use new keyboard context/keymap api
fix keymap changes on compositor canvas
2017-05-25 18:37:25 -04:00
Mike Blumenkrantz 556bc10121 remove unnecessary comparison when applying new keyboard layout in gadget 2017-05-25 15:03:28 -04:00
Mike Blumenkrantz f11aeaa8d0 do not perform zone updates on ignored clients during evas callbacks
ignored clients should not have a zone or a desk
2017-05-25 12:15:42 -04:00
Mike Blumenkrantz c6a0abc763 force client pixmap refresh immediately during resize if nocomp is active
in the case where this path was reached during x11 nocomp, the client's pixmap
refresh would be deferred until the end of nocomp, even when the refresh would
otherwise end the nocomp. instead, force the refresh immediately.

fix T4887
2017-05-24 10:10:07 -04:00
Mike Blumenkrantz 9701588cc8 add error messages when symbols fail to resolve in xwl init
ref T5258
2017-05-24 10:10:07 -04:00
Mike Blumenkrantz c21c0d64eb always run client icon update path when creating xdg6 role surface
ensure that the client gets a desktop associated with it so that it
can be matched to exec instances
2017-05-24 10:10:07 -04:00
Stephen 'Okra' Houston 456e899b44 Luncher: make sure all global handlers get created -- check for different luncher types in the callbacks. 2017-05-22 13:28:51 -05:00
Stephen 'Okra' Houston 3b39279dfb Pager Gadget: Fix potential crash on screen changes such as screen size change. 2017-05-22 13:14:55 -05:00
Stephen 'Okra' Houston 171686f0a9 Luncher Improvements: Don't add multiple global handlers for the same events and don't show preview immediately for iconic.
This fixes T5377
2017-05-22 13:01:12 -05:00
Stephen 'Okra' Houston e5c337abfb Mixer/Backlight: Set correct levels on creation.
This fixes T5500
2017-05-19 10:52:18 -05:00
Stephen 'Okra' Houston 7d095c3fe3 Sysinfo: Fix use for non linux/bsd os's.
This fixes T5485
2017-05-15 10:43:05 -05:00
Stephen 'Okra' Houston 9d0bcd9ce2 Gadgets: Send proper theme strings, and set aspect/size correctly. 2017-05-12 15:38:45 -05:00
Mike Blumenkrantz e110f912e2 don't dup fds during xwl bridged selection transfer, this happens in libwayland 2017-05-12 12:08:37 -04:00
Mike Blumenkrantz 9df31011c8 unset wl selection target client if that client is deleted
the frame deletion callback would trigger far too late, allowing
crashes to occur if the selection target client exited between the
time of the drop event and the selection send event
2017-05-12 12:08:37 -04:00
Mike Blumenkrantz b75f0d2be2 unset wl button mask when beginning a move/resize operation
ensure that clients do not receive a release event for any pressed
buttons
2017-05-12 12:08:37 -04:00
Mike Blumenkrantz fbca4fa5e4 check efm path existence before using it during dnd selections
CID 1374484
2017-05-12 12:08:37 -04:00
Mike Blumenkrantz effbb81722 remove check for desklock in comp object autoclose handler 2017-05-12 12:08:37 -04:00
Mike Blumenkrantz 203507fa22 add desklock interface handler for key press
key presses during desklock should only be received by the lock implementation
and not by any other handler. this ensures that nothing unexpected can happen
with focus and simplifies overall key handling
2017-05-12 12:08:37 -04:00
Stephen 'Okra' Houston ac2c9a220f Backlight Gadget: Properly set on hold events. 2017-05-12 09:57:48 -05:00
Stephen 'Okra' Houston 20f94cec74 Bryce/Gadgets: Add backlight, xkbswitch, and mixer gadgets. This should round out the core gadget ports.
All three of these gadgets are ports of the existing modules of the same name and are contained within those directories.  Once the move from shelves -> bryce and gadcon->gadgets is complete, backlight and mixer will likely need to go into the sysinfo gadget.
2017-05-11 17:13:15 -05:00
Carsten Haitzler 8ea03a039f e cpufreq - stop checking status nullness - silence coverity
status is a msg from the child thread. it's never null. checks before
sending should guarantee that.

fix CID 1365406
2017-05-11 17:14:28 +09:00
Carsten Haitzler 69f757edad further fixes to screensaver/banking with window states like fullscreen
this is a further fix for T5464 to actually make the intended option
work at all. what was there was broken. now it works. init order was
wrong - screensaver was relying on event id's from e_client socde that
were not initted yet AND the handlers didnt account for "dont blank
when fullscreen window is there" at all. @fix
2017-05-07 14:35:14 +09:00
Carsten Haitzler f6a92a5753 fix fullscreen no blank logic in e's dpms code
while this is still the wrong place and has other bugs, this fixes
T5464 ... but different things to fix now. @fix
2017-05-07 14:35:14 +09:00
Andy Williams 3c7c797e14 Add Change Wallpaper item in Desktop menu.
Also re-arrange Desktop menu to be more frequently used order
2017-05-05 22:34:21 +01:00
Mike Blumenkrantz d81818b309 do not show iconic x11 clients on on icccm hint change
this is supposed to handle the case of state changing from withdrawn
to normal, but attempting to show an iconic client in this case results
in dead windows on screen

fix T5444
2017-05-01 13:26:11 -04:00
Mike Blumenkrantz de0b9edee0 better handling for iconify during comp object show/hide
in the case where effects are disabled, no animation is started for iconify
operations, so this should fall through to the normal hide/show paths

ref T5444
2017-05-01 13:26:11 -04:00
Stephen 'Okra' Houston b539171077 Luncher: Make transitions such as engage smoother by including the icon spacers in events. 2017-04-28 15:15:22 -05:00
Al 'netstar' Poole 89feae2b86 Sysinfo: Fix interger overflow on BSD.
This commits D4810
2017-04-27 15:19:44 -05:00
Stephen 'Okra' Houston b302f1047c Luncher: Make current preview tracking per instance. 2017-04-27 15:14:30 -05:00
Stephen 'Okra' Houston c470a4fc33 Luncher: Improve sizing, animations (including engage), and the functionality of a bar on the desktop. 2017-04-27 15:02:47 -05:00
Stephen 'Okra' Houston b09e17baae Luncher - Set an icon to inactive when the preview is dismissed as well as on mouse out. 2017-04-26 13:21:08 -05:00
Stephen 'Okra' Houston 33bc90da6a Luncher: Improve mouse in/preview management and fix luncher bar on the desktop. 2017-04-26 13:10:55 -05:00
Stephen 'Okra' Houston 2ef7a12441 Luncher: Show previews on client creation if the point is inside of the corresponding icon. Pass events on popups once they are deleted.
This fixes the issue where you will have to mouse out then mouse in again to be able to see previews on icons that you just clicked to start.
2017-04-26 11:53:27 -05:00
Mike Blumenkrantz 8c621db693 check image load error when checking dmabuf viability in gl
ref T5418
2017-04-21 16:16:38 -04:00
Mike Blumenkrantz 2297427514 remove unused struct members 2017-04-21 16:16:38 -04:00
Mike Blumenkrantz e1093c87ea set initial x11 window geometry for windows which do not have wm hints
fixes case where a non-override window has no hints and must be shown on
startup
2017-04-21 16:16:37 -04:00
Marcel Hollerbach 79996f9bdb tiling: fix compile warning
item got set but never used
2017-04-19 17:31:47 +02:00
Marcel Hollerbach b5ad46b33b tiling: extra can be NULL here
Which is the case when the client is not tiled. So better checking for
it.

fixes CID 1373271
2017-04-19 17:31:47 +02:00
Stephen 'Okra' Houston 43ebf4a011 Xkbswitch: Use E_Dialog (which uses elm) instead of elm_win directly to make use of built in extra features. 2017-04-17 14:08:03 -05:00
Carsten Haitzler 86532962b5 e thumb - extend extension that might have media metadata image thumbs 2017-04-17 12:07:53 +09:00
Al Poole 82f1b8a1c1 E -> Enlightenment_thumb -> Media -> Thumbnail Creation.
Summary:
E -> Enlightenment_thumb -> Media -> Thumbnail Creation.

@feature

Add thumbnail creation to ethumb rather than in the image loaders.
See:

https://www.enlightenment.org/ss/display.php?image=e-58e93eef5e8b58.22514685.jpg

Test Plan: View directory with mp4 video in efm and see thumbnail.

Reviewers: zmike!, raster

Reviewed By: raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4779
2017-04-17 12:06:11 +09:00
Mike Blumenkrantz 1cbddb6d8f avoid refocusing deleted wl clients during comp input ungrabbing
this is an error
2017-04-14 11:48:43 -04:00
Mike Blumenkrantz c37ce1cccd explicitly set nested wl output canvas as a toplevel window
this is not an elm win so it needs to be set by the module
2017-04-14 11:48:43 -04:00
Mike Blumenkrantz 4eb60da0b3 make SHAPE_DEBUG activate with E_SHAPE_DEBUG env var
this is useful for debugging and the option to recompile is not always
available
2017-04-14 11:48:43 -04:00
Mike Blumenkrantz 7172239c0c make RENDER_DEBUG activate with E_RENDER_DEBUG env var
this is useful for debugging and the option to recompile is not always
available
2017-04-14 11:48:43 -04:00
Al 'netstar' Poole c282341ed8 Sysinfo: Make memusage and cpumonitor work better on BSD.
This commits D4749
2017-04-11 16:34:37 -05:00
Mike Blumenkrantz a5cc19bd1a remove unused struct members from wl E_Comp_Wl_Client_Data 2017-04-07 16:08:38 -04:00
Mike Blumenkrantz 53d0f98c50 set pass events on efm icons when deleting files
ensure that if a delete op is executing the icon cannot be clicked

probably fix T5340
2017-04-07 16:08:38 -04:00
Mike Blumenkrantz 3b12f89ebe re-set list of default desklock bgs when changing to custom bg in config
this list of bgs gets freed a lot, including in this case, which results in
the apply() function failing later after the bg has been changed

fix T5288
2017-04-07 16:08:38 -04:00
Mike Blumenkrantz ffb402786b remove uuid references from e_pixmap.c
I don't know what these are for?
2017-04-07 16:08:38 -04:00
Mike Blumenkrantz 174b0d040b add cache for dead x11 manager windows
in the case where an app unmaps and maps its window very quickly, this
allows detection of the maprequest event which will occur with the just-deleted
manager window so that the window can be correctly managed again

fix T5348
2017-04-07 16:08:38 -04:00
Mike Blumenkrantz a7cfbcd101 do not adjust unplaced transient client position on parent move/resize
this breaks placement
2017-04-07 16:08:38 -04:00
Mike Blumenkrantz 6a28856086 remove duplicated client stacking code from wl restack callback
this would always have resulted in double restacking since the client callback
already handles restacks
2017-04-07 16:08:37 -04:00
Mike Blumenkrantz 2ca599b317 apply transient stacking to wl clients when restack would not otherwise occur
ensure that transients are stacked consistently every time
2017-04-07 16:08:37 -04:00
Mike Blumenkrantz b4be7040a6 break out client transient restacking into function
this is nontrivial and breaks things when incorrectly applied
2017-04-07 16:08:37 -04:00
Mike Blumenkrantz c196ef110e re-place transient wl clients when parent is first sized
this should ensure more reliable centering using a nonzero geometry
2017-04-07 16:08:37 -04:00
Mike Blumenkrantz 1a8207ce70 support clients as positioner objects in e_comp_object_util_center_on() 2017-04-07 16:08:37 -04:00
Mike Blumenkrantz 1bc600baba do not arbitrarily center "lost" child windows, center them on the parent
if the parent is also lost, it will eventually be rescued and thus all children
will also be saved

 #WeirdCommitLogs
2017-04-07 16:08:35 -04:00
Mike Blumenkrantz d4b8404073 add a client's children to the skiplist during place routine
these should be ignored since they will be positioned relative to the parent
2017-04-07 16:07:25 -04:00
Mike Blumenkrantz 014db9469b use e_client_parent_set() in wl *shell parent setting methods 2017-04-07 16:07:25 -04:00
Mike Blumenkrantz d897f834ee don't set wl xdg-foreign clients as modal
protocol says this should be the same as xdg_surface.set_parent which is
not the same as modal
2017-04-07 16:07:25 -04:00
Mike Blumenkrantz 53233ec53f center child clients on parent in parent_set() 2017-04-07 16:07:25 -04:00
Mike Blumenkrantz bab204bde1 explicitly stack child client above parent when calling parent_set 2017-04-07 16:07:25 -04:00
Mike Blumenkrantz 342bbee434 re-set backlight level when resuming from suspend
on some hw/systems, suspend sets brightness to maximum
2017-04-07 16:07:25 -04:00
Marcel Hollerbach 56246e0f08 mixer: be prepared for sinks without any volume
for the case that a sink does not have any volume we would access
NULL[0], which leads to a crash, this fixes that.

fix T5298
2017-04-07 11:53:56 +02:00
Marcel Hollerbach 8e3531648b tiling: fix zero sized zone
when plugging a screen in and out, there is the case that a zone has a
usefull geometry of 0x0, which means all clients on this zone are
resized to 0x0. Which leads to a CRIT message in the compositor, which
leads (ref commit 5d875e6a3d) to a abort()
which is really really annoying. Give here a short ERR about that case
so we are leaving out the compositor, since this really only strikes on
tiling, since in normal mode the client just keeps its size.
2017-04-05 10:08:21 +02:00
Carsten Haitzler 7ab621925f e randr2 - fix freeing of stringshare by making it a stringshare
cs->id was strduped but freed as a stringshare... so actually add it
as a stringshare.
2017-03-31 17:45:57 +09:00
Carsten Haitzler f47929c93a e stacking support - enable beta api to get access as quick fix
so i made the stacking api's in efl beta/unstable so as a very quick
fix - enable efl beta api to access them until code syncs up and
stabilizes.
2017-03-28 13:50:23 +09:00
Carsten Haitzler 7557486ab3 fix crash in syscon when you press pr 2x in a row quickly to shutdown
not pretty but a fix... for now
2017-03-26 17:19:46 +09:00
Mike Blumenkrantz e3faaf865e do not set intermediate client geometry when doing fullscreen -> maximized
this provides a smoother experience for the transition as well as being a
more optimized operation
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz b223ed0981 add E_Client->saved.set
this indicates that saved geometry has been set and should not be
updated during maximize

currently only used to handle transition from fullscreen -> maximize
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz 5c4f8a19a4 call "maximize" smart callback before "maximize_pre"
this callback induces ssd changes which affect the resulting geometry
and so it must be called before any size calculations are made
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz e3b3970b6e adjust size for frame geometry in no-animation maximize path
this is based on window size, not surface size

also ignore coords if the size matches, animating just a positional
change looks dumb
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz ef3260a799 only center internal windows once
these shouldn't re-center on every resize
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz e1e9e68515 force animationless re-maximize when unfullscreening
animating here results in the window resizing to its original (smaller)
size, then growing back to its maximized size
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz e71524c7bd check pixmap size before triggering maximize animation
if pixmap size matches animation size then avoid animation calls since
this will look stupid
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz 6bb6f14b7c add debug for xdg6 configure 2017-03-24 13:17:24 -04:00
Mike Blumenkrantz 7fe67cf187 slightly optimize maximize -> fullscreen protocol comms for wl clients
this is a no-op since a configure will be sent later
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz a0f7b03689 force e_client_unmaximize() to complete during fullscreen operation
it doesn't matter if the current client size doesn't match the unmax
size in this case since the size will be changed to fullscreen anyway

fixes maximize -> fullscreen transition
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz bfa3aacca3 always set E_Client->need_fullscreen when fullscreening
provide a method for determining whether a client is about to become
fullscreen during callbacks
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz d589e5217b unset wl shell resource data on destroy
ensure that destroy cannot be called multiple times for the same resource
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz 7e05eff3e3 only apply xdg-shell client del hooks to internal clients
ref 8173c06c4d
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz ad15822f27 disable client maximize anims when unmaximizing before a fullscreen
this ensures accurate positioning of windows about to be fullscreened
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz bc50b140c1 use compositor win object for client volume slider
ERR<elementary>lib/elementary/elm_widget.c:1159 You passed a wrong parent parameter (0x4000005c7a973cf5 edje). Elementary widget's parent should be an elementary widget
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz f6e332946c add flag for wl clients to determine ssd mouse-in vs client mouse-in
better handling for moving mouse into ssd region with xwl clients
2017-03-24 13:17:24 -04:00
Marcel Hollerbach f190a00f16 tiling: display the hint on the zone if there is no client below 2017-03-22 19:51:50 +01:00
Marcel Hollerbach 954e1a390e tiling: update the indicator where the icons are dropped 2017-03-21 20:43:12 +01:00
Marcel Hollerbach 6732c37929 tiling: only start a drag when the cursor is really moved
otherwise a simple click on the header will init a completly drag, which
is often not desired.
2017-03-18 22:08:41 +01:00
Mike Blumenkrantz e1ed56c327 account for late object setup when adding ssd mouse in/out callbacks
internal windows have a different setup order in which the frame is created
before any of the other internal objects in a comp object
2017-03-17 18:47:09 -04:00
Mike Blumenkrantz e2be96901e do not attempt to set window hidden hints on non-internal x11 windows
this causes a BadWindow error
2017-03-17 15:08:38 -04:00
Mike Blumenkrantz 58b66048f1 block x11 focus eventing under xwayland
ensure that focus changes come from the compositor and not from clients
2017-03-17 15:08:38 -04:00
Mike Blumenkrantz 1be8a5a590 always feed mouse events for wl client move events
better handling for xwayland case of moving pointer into ssd region
2017-03-17 15:08:38 -04:00
Mike Blumenkrantz 7f142f31f5 use even more accurate wl callbacks for detecting ssd mouse in/out events
ensure that any wl client with ssd hits the ssd mouse eventing path
2017-03-17 15:08:38 -04:00
Mike Blumenkrantz a151ac30b8 do not send mouse events to ssd wl clients if mouse is within ssd region 2017-03-17 15:08:38 -04:00
Mike Blumenkrantz f2ab232f3e Revert "Stop sending wayland motion events when the mouse is grabbed"
This reverts commit 0a91a24573.

this should be resolved in a more readable way now
2017-03-17 15:08:38 -04:00
Mike Blumenkrantz 8f197eba71 compare against e_client_action_get() for rejecting wl mouse events
signal actions do not set the cur_mouse_action pointer, but the return
of this function will still match the client for a more accurate heuristic
2017-03-17 15:08:38 -04:00
Mike Blumenkrantz 9e5bf813f9 set signal move/resize clients as action_client internally
technically action_client is used to indicate that an e_action is
active, but functionally it really just means "this client is moving or
resizing" and the compositor makes certain adjustments based on this
2017-03-17 15:08:38 -04:00
Mike Blumenkrantz 7052c66e74 force sending of last-used geometry when terminating a resize in wl shell send_configure
in the event that a client has not yet committed the changes from the
most recent resize event, it's legal for a client to have acked the previous
configure, ack this one, and then do nothing

this ensures that the last resize event(s) sizes are applied by the client
2017-03-17 15:08:38 -04:00
Mike Blumenkrantz 5a94a95e63 send wl client resize edges during focus-in/out send_configure
avoid prematurely terminating resize operations
2017-03-17 15:08:38 -04:00
Mike Blumenkrantz 3ca416cc0a add wrappers for elm_win util create functions
avoid deadlocking in gl init by forcing sw
2017-03-17 15:08:29 -04:00
Mike Blumenkrantz 047f08a994 do not accidentally place unplaced clients during wl *shell configure 2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 69936f74a5 set dialog and tooltip flags for internal clients
fixes handling of internal wl windows which are set as dialogs
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 89ea040222 only re-set comp object position during show if client has been placed
avoid accidentally placing an unplaced client
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz be5ef5e6c4 always get zone geometry when placing clients
previous codepaths relied on new_client being set, which would have
fetched the zone geometry earlier. this is no longer necessarily the
case
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 20dfb3c0df use show instead of bring_in for xkbswitch layout add dialog 2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 7be2167013 handle window icons from elm for internal wins
fixes appearance of icons set with elm_win_icon_name_set()
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 235bbc087e rework how pulseaudio is started in mixer backend
calling `pulseaudio` starts a new daemon in the background. this is incorrect
behavior when a daemon already exists, so use --start. tracking the exe of
this process has no effect other than to determine when the fork()ing parent exits,
which is usually immediately

ref 35bb87529f
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 7191c45de5 slow down mixer's pulse reconnect rate
0.2s is way too fast and results in crazy cpu usage from attempting to
spawn invalid pulseaudio instances in some cases

ref 35bb87529f
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz e23bf0cf68 do not use animations for wl clients with initial maximize state
this looks fugly and breaks all kinds of things
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 0d8b33c15f use maximized geometry for shell maximize calls on wl clients if !buffer_commit
this is for setting the initial state of a surface as maximized, so do not use
animation geometry here
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 638657f043 always use jobs to create bryce menus
ensure that menus can never be created during a post event callback in
order to avoid crashes

ref T3144
fix T5262
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 24feeaaf73 only set toolbar icon min size if icon exists 2017-03-17 13:16:59 -04:00
Mike Blumenkrantz f11739230d set title for buffer output canvas 2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 118a70730f handle nested compositor delete requests
the previous implementation of this using ee callbacks broke during
elm integration since elm overrides all of those callbacks
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 71c9cedfbf only hide wl clients on surface destroy when surface is mapped
fixes some cases where hide animations would not be visible
2017-03-17 13:16:59 -04:00
Andy Williams d99fe0e02a luncher: Fix some wobble 2017-03-16 23:02:28 +00:00
Stephen 'Okra' Houston d85617cda7 xkbswitch: Remove e_widgets from the add dialog and replacing them with elm
This greatly improves the speed and sizing problems with the add layout dialog.
2017-03-15 16:44:47 -05:00
Stephen 'Okra' Houston d65945d1cd Luncher: Show the preview popup based on icon placement. 2017-03-13 20:59:44 -05:00
Stephen 'Okra' Houston 8d07ad7845 Luncher: Don't try to perform aspect set on a deleted bar. 2017-03-13 17:40:43 -05:00
Al 'netstar' Poole 4e1d079aa8 Batman: Add multi-battery support for bsd based distros.
Differential was D4670
2017-03-13 14:59:39 -05:00
Stephen 'Okra' Houston 4549bf2f77 Luncher: Reset scale on mouse out or new effect. 2017-03-13 13:17:00 -05:00
Al Poole 955a21d5ef E keyboard settings - use the same icon as the keyboard settings dialog
Reviewers: zmike!

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4716
2017-03-13 12:33:38 -04:00
Al Poole 8bce604383 Fix compiler type warnings (snprintf)
Reviewers: zmike!

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4715
2017-03-13 12:32:54 -04:00
Al Poole ac5036af0f Fix macro namings in relation to endianness.
Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4714
2017-03-13 12:32:23 -04:00
Andy Williams f68b8f1567 luncher: Smoothing animations 2017-03-11 23:12:57 +00:00
Andy Williams 28e5b5e82b luncher: update aspect ratio calculations
@fix
2017-03-10 22:16:49 +00:00
Mike Blumenkrantz 701e046b0b clear luncher instance icons on bar deletion
==21266== 3,488 (96 direct, 3,392 indirect) bytes in 2 blocks are definitely lost in loss record 10,417 of 10,680
==21266==    at 0xE1E5D49: _eina_chained_mempool_alloc_in (eina_chained_mempool.c:212)
==21266==    by 0xE1E5FDC: eina_chained_mempool_malloc (eina_chained_mempool.c:324)
==21266==    by 0xE1A016E: eina_mempool_malloc (eina_inline_mempool.x:90)
==21266==    by 0xE1A03C2: _eina_list_mempool_list_new (eina_list.c:222)
==21266==    by 0xE1A11C5: eina_list_append (eina_list.c:578)
==21266==    by 0x2910B667: _bar_fill (bar.c:1565)
==21266==    by 0x2910D1A5: _bar_recalculate_job (bar.c:2047)
==21266==    by 0xC602C2C: _ecore_job_event_handler (ecore_job.c:98)
==21266==    by 0xC5FBBCE: _ecore_call_handler_cb (ecore_private.h:317)
==21266==    by 0xC5FCB5D: _ecore_event_call (ecore_events.c:518)
==21266==    by 0xC605EEB: _ecore_main_loop_iterate_internal (ecore_main.c:2381)
==21266==    by 0xC603C99: ecore_main_loop_begin (ecore_main.c:1289)
==21266==    by 0x43DD0D: main (e_main.c:1089)
2017-03-10 15:55:42 -05:00
Mike Blumenkrantz 4fc6fcf1e3 don't set minw for keyboard layout dialog
somehow this causes the dialog to size crazily for a couple seconds
before growing to its final size
2017-03-10 15:55:42 -05:00
Mike Blumenkrantz 32c55ebc51 handle null E_Comp->screen during randr2 shutdown
some output modules have no screen iface (e.g., buffer, wl_wl, wl_x11)
and so this will always be null
2017-03-10 15:55:19 -05:00
Mike Blumenkrantz 05ef0b0280 call e_randr2_shutdown in comp shutdown
this should always be called, not just in comp_x
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz a064899511 move x11 iconic window init from e_hints -> comp_x initial fetch
this reflects the order in which the client passes through these functions
and fixes handling of iconic clients on startup
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz f253351f0a force iconic state for iconic x11 clients during shutdown
this may or may not have been set previously if client mirrors are present,
but it should definitely be set during shutdown since there are no mirrors
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz cc434190ad call wl/x compositor shutdown functions directly during comp shutdown 2017-03-10 15:55:06 -05:00
Mike Blumenkrantz 8b0eb9ad8e do not start xwayland repeatedly
ref 0534c7ae6f
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz d17fe0614e check changes.pos during client maximize/fullscreen and adjust window coords
using these coords when the changes.pos flag is set should result in more accurate
results for positioning when removing the state
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz 5b9dec214e only save client size info on maximize/fullscreen when protocol visible
a client which begins in one of these states must set its size again when
removing the state
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz 5720338072 perform frame adjustments before applying wm spec hints during unmaximize
e_client_resize_limit removes frame adjustments before performing calcs,
so ensure that the geometry passed is pre-adjusted to account for this
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz e4b6494936 make e_remember_del() work with sr remembers 2017-03-10 15:55:06 -05:00
Mike Blumenkrantz a7f708d568 add wl client flag to indicate status of xdg6 pre-buffer configure
ensure that initial configure is not sent more than once

ref T5044
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz fece2ab5bf return during comp object pixels function if client was deleted during render 2017-03-10 15:55:06 -05:00
Mike Blumenkrantz 8f896b7862 show x11 parent windows during reparent only if not withdrawn
iconic windows are still shown
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz f2c1976e9a do not force comp objects to render for their proxies if real_hid is set
this flag indicates that the object cannot be rendered
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz adaad812d3 run e_hints_window_init() on new_client eval and not during placement
these are not related
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz f93777181f manually center pointer using compositor size on init when not restarting
when using fake screens this ensures that a viewported canvas will have
the expected mouse position
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz 802136f5f2 do not use saved e_randr screens if fake screens have been added 2017-03-10 15:55:06 -05:00
Mike Blumenkrantz 5d62ec3cee make E_COMP_SIZE a global comp resizing env var 2017-03-10 15:55:06 -05:00
Mike Blumenkrantz 7828db4575 track and delete xdg-shell client hooks
fix T5242
2017-03-10 15:55:06 -05:00
Marcel Hollerbach 1277ef9747 tiling: drop move requests from tiled clients 2017-03-10 21:44:08 +01:00
Marcel Hollerbach 2faf052f0d tiling: handling dragging from desk to desk
There are a few cornercases when dragging clients between a tiled and a
untiled one.
2017-03-10 13:49:58 +01:00
Marcel Hollerbach 37be0cf885 tiling: handle the tiling state correctly when on multimonitor
there is no event that indicates that the mouse went to a other zone. To
solve this we simply update the current split type each time when
changing or using the type.
2017-03-10 13:49:44 +01:00
Marcel Hollerbach d1e2d1068a tiling: save the split type per desk
this allows you to have different types per virtual desktop
2017-03-09 23:06:23 +01:00
Marcel Hollerbach 44b5aec991 tiling: refactor the window tree
there are two functions to insert a client, they should perform the same
operations on the parameters.
2017-03-09 19:31:56 +01:00
Marcel Hollerbach 35e729f941 tiling: make windows placable by dragging them arround
If someone starts to drag a client arround, then the client will shrink
into a icon, that now is always at the position of the mouse cursor, if
the drag ends, the client will be placed in the client currently below
it. The client will be placed in a place where the mouse cursor was
currently closer to.
2017-03-09 13:59:48 +01:00
Stephen 'Okra' Houston 9b211b80c3 Luncher: Begin work to handle engage sizing correctly. 2017-03-08 18:21:15 -06:00
Stephen 'Okra' Houston 3ba67bbf3b Sysinfo: Use the correct define for DragonFly. 2017-03-05 17:31:47 -06:00
Marcel Hollerbach fe50e1edf0 tiling: do not pass parent as relative
otherwise the client does not get into the list of parent
2017-03-04 09:19:47 +01:00
Mike Blumenkrantz 2a8d593e8b add handler for EFREET_EVENT_DESKTOP_CACHE_BUILD to e_order init
it's possible that during startup there will never be a CACHE_UPDATE
event, so ensure that an attempt to read occurs by watching this event too
2017-03-03 10:52:24 -05:00
Mike Blumenkrantz 3753586663 set ON_HOLD when activating start gadget 2017-03-03 10:49:33 -05:00
Mike Blumenkrantz 41476f8f3e defer menu activation mouse-up feed
ensure that this is not triggered from an evas post event callback

ref T3144
2017-03-03 10:49:33 -05:00
Mike Blumenkrantz d29fb6b0b5 do not unset E_Client->placed for fullscreen/maximize clients
these are already placed
2017-03-03 10:49:33 -05:00
Mike Blumenkrantz b91d224a4d add Return and Caps_Lock handling to wl key event generation 2017-03-03 10:49:33 -05:00
Mike Blumenkrantz e3a5ab1457 Revert "e - wl mode - stop consuming 100 percent cpu"
This reverts commit cd3490f35c.

this breaks many windows by preventing deferred resizing from occurring.
a window which is unable to resize at the time of this call must be queued
for a deferred resize, otherwise it may never resize at all and thus will
never be rendered

test case: screenshot dialog
2017-03-03 10:49:33 -05:00
Mike Blumenkrantz 9e54e62447 fix dangling pointers in xdg-shell deletion
partially caused by use of wrong hash, partially by failure to remove
list entries

fix T5235
2017-03-03 10:49:33 -05:00
Mike Blumenkrantz 156b8d434b unset deskmirror client's client pointer upon client deletion
prevent invalid access after client deletion
2017-03-03 10:49:33 -05:00
Mike Blumenkrantz cfb1fa41e6 add all wl client frame callbacks with priority AFTER
ensure that these occur after all other callbacks since they can affect
the lifetime of the client object
2017-03-03 10:49:33 -05:00
Mike Blumenkrantz e618e00297 better protect comp object internals from dereferencing freed clients
animating comp objects persist after the lifetime of their client, so
ensure that functions which are likely to be called after the client's free
will not attempt to access client struct members
2017-03-03 10:49:33 -05:00
Mike Blumenkrantz 54dfcea3e0 comment out inlist member of E_Comp_Object struct
this was unused
2017-03-03 10:49:33 -05:00
Mike Blumenkrantz 504f88d24a hide wl clients before deleting them on surface destroy
==13853== Invalid read of size 8
==13853==    at 0x5C7C56: _e_comp_wl_surface_destroy (e_comp_wl.c:1804)
==13853==    by 0xA999971: destroy_resource (wayland-server.c:611)
==13853==    by 0xA9A06F4: for_each_helper (wayland-util.c:374)
==13853==    by 0xA9A073F: wl_map_for_each (wayland-util.c:387)
==13853==    by 0xA999C87: wl_client_destroy (wayland-server.c:763)
==13853==    by 0xA999216: wl_client_connection_data (wayland-server.c:283)
==13853==    by 0xA99C2B0: wl_event_source_fd_dispatch (event-loop.c:90)
==13853==    by 0xA99CC11: wl_event_loop_dispatch (event-loop.c:423)
==13853==    by 0xA787AC0: _cb_create_data (ecore_wl2_display.c:272)
==13853==    by 0xDBE984D: _ecore_call_fd_cb (ecore_private.h:333)
==13853==    by 0xDBEC01B: _ecore_main_fd_handlers_call (ecore_main.c:1992)
==13853==    by 0xDBEC8A9: _ecore_main_loop_iterate_internal (ecore_main.c:2379)
==13853==    by 0xDBEA672: ecore_main_loop_begin (ecore_main.c:1292)
==13853==    by 0x441DA9: main (e_main.c:1089)
==13853==  Address 0x30ba5d90 is 176 bytes inside a block of size 1,424 free'd
==13853==    at 0x4C2ED4A: free (vg_replace_malloc.c:530)
==13853==    by 0x4603D6: _e_client_free (e_client.c:588)
==13853==    by 0x5475A8: e_object_free (e_object.c:119)
==13853==    by 0x5477C4: e_object_unref (e_object.c:152)
==13853==    by 0x5473D7: e_object_del (e_object.c:60)
==13853==    by 0x5C7C51: _e_comp_wl_surface_destroy (e_comp_wl.c:1803)
==13853==    by 0xA999971: destroy_resource (wayland-server.c:611)
==13853==    by 0xA9A06F4: for_each_helper (wayland-util.c:374)
==13853==    by 0xA9A073F: wl_map_for_each (wayland-util.c:387)
==13853==    by 0xA999C87: wl_client_destroy (wayland-server.c:763)
==13853==    by 0xA999216: wl_client_connection_data (wayland-server.c:283)
==13853==    by 0xA99C2B0: wl_event_source_fd_dispatch (event-loop.c:90)
==13853==    by 0xA99CC11: wl_event_loop_dispatch (event-loop.c:423)
==13853==    by 0xA787AC0: _cb_create_data (ecore_wl2_display.c:272)
==13853==    by 0xDBE984D: _ecore_call_fd_cb (ecore_private.h:333)
==13853==    by 0xDBEC01B: _ecore_main_fd_handlers_call (ecore_main.c:1992)
==13853==    by 0xDBEC8A9: _ecore_main_loop_iterate_internal (ecore_main.c:2379)
==13853==    by 0xDBEA672: ecore_main_loop_begin (ecore_main.c:1292)
==13853==    by 0x441DA9: main (e_main.c:1089)
==13853==  Block was alloc'd at
==13853==    at 0x4C2FA50: calloc (vg_replace_malloc.c:711)
==13853==    by 0x5471A4: e_object_alloc (e_object.c:20)
==13853==    by 0x467AD5: e_client_new (e_client.c:2596)
==13853==    by 0x5C7F11: _e_comp_wl_compositor_cb_surface_create (e_comp_wl.c:1858)
==13853==    by 0xADBDC57: ffi_call_unix64 (in /usr/lib64/libffi.so.6.0.2)
==13853==    by 0xADBD6B9: ffi_call (in /usr/lib64/libffi.so.6.0.2)
==13853==    by 0xA99EEED: wl_closure_invoke (connection.c:935)
==13853==    by 0xA999581: wl_client_connection_data (wayland-server.c:371)
==13853==    by 0xA99C2B0: wl_event_source_fd_dispatch (event-loop.c:90)
==13853==    by 0xA99CC11: wl_event_loop_dispatch (event-loop.c:423)
==13853==    by 0xA787AC0: _cb_create_data (ecore_wl2_display.c:272)
==13853==    by 0xDBE984D: _ecore_call_fd_cb (ecore_private.h:333)
==13853==    by 0xDBEC01B: _ecore_main_fd_handlers_call (ecore_main.c:1992)
==13853==    by 0xDBEC8A9: _ecore_main_loop_iterate_internal (ecore_main.c:2379)
==13853==    by 0xDBEA672: ecore_main_loop_begin (ecore_main.c:1292)
==13853==    by 0x441DA9: main (e_main.c:1089)
2017-03-03 10:49:33 -05:00