Carsten Haitzler (Rasterman) [Mon, 24 Aug 2015 03:00:28 +0000 (12:00 +0900)]
Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it""
This reverts commit
466dd8d57db6f281e7faebc4d532d5bc77e02dd7.
sorry - this bug is still there and this tracks references - the
current code DOES NOT DO THIS RIGHT.
No symbol table info available.
No symbol table info available.
out>) at src/bin/e_deskmirror.c:336
mb = 0x1ed7220
#3 0x00007f0e3c864a8d in evas_object_smart_del
(eo_obj=0x8000039ae0101eb8) at lib/evas/canvas/evas_object_smart.c:1016
obj = <optimized out>
sobj = <optimized out>
s = 0x220d540
i = <optimized out>
__FUNCTION__ = "evas_object_smart_del"
(eo_obj=0x8000039ae0101eb8, obj=0x21432e0) at
lib/evas/canvas/evas_object_main.c:739
proxy = <optimized out>
l = <optimized out>
l2 = <optimized out>
texture = <optimized out>
__FUNCTION__ = "_evas_object_eo_base_destructor"
...
and EXACTLY as before p *(mb->m) shows that m is full of garbage.
mb->ec is a garbage pointer, w amd h arte garbage coordinates etc. m
is not tracked. pretty simple. open and close a few windows - mayeb
switch some desktops, THEN restart and see the crashes. its easy
enough to reproduce
Mike Blumenkrantz [Fri, 21 Aug 2015 21:13:48 +0000 (17:13 -0400)]
remove dirty callback for deskmirror clients upon creating visual
if another callback triggered the creation of a deskmirror visual while
the dirty callback was in place, a second mirror object would be created
leading to an orphaned mirror object which retained references to the dm
client and eventually resulting in a crash
Mike Blumenkrantz [Fri, 21 Aug 2015 19:53:10 +0000 (15:53 -0400)]
simplify e_desk_show visibility unsetting, reject recursive desk flips
the currently visible desk for a zone is stored on the zone struct, so
iterating here is unnecessary. furthermore, at the time when a desk is hidden,
a client may begin receiving mouse events which could trigger a focus-set and
lead to another desk flip. at this time and only this time, the "current" desk
will be marked as not visible, and so this sort of desk show must be rejected
fix T2676
Mike Blumenkrantz [Fri, 21 Aug 2015 19:50:10 +0000 (15:50 -0400)]
track focus time for x11 canvas focus, unset client focus on x11 canvas focus-in
in the case that the canvas window has just had focus set on it, apply this focus
and ensure that no client retains focus
this resolves a race condition where focusing the compositor canvas <-> client
extremely quickly would result in a client trying to steal focus when it was
not actually focused
a notable (but trivial) side effect is that now when flipping desks at high speed while using
mouse-based focus policies, the user is almost guaranteed to end on a desk which
has open windows on it
Mike Blumenkrantz [Fri, 21 Aug 2015 19:46:13 +0000 (15:46 -0400)]
reject focus-set attempt if desk flip to client's desk was rejected
in the case of recursive desk flips, toggling a desk's visibility may
erroneously send queued evas events to the client's frame object, leading
to a focus-set (mouse-based focus models) which triggers a desk flip
inside the original desk flip. this "inner" desk flip is spurious and
should be ignored
Mike Blumenkrantz [Fri, 21 Aug 2015 18:51:33 +0000 (14:51 -0400)]
add full damage for x11 override clients on resize configure event
it seems that the reported damage events upon resizing an override window
are not accurate, and so we must force a full damage here while avoiding a
render queue in order to ensure that the full contents of the override will
be rendered in the next frame
fix T2045
Mike Blumenkrantz [Fri, 21 Aug 2015 17:10:06 +0000 (13:10 -0400)]
don't watch dirty smart cb for desmirror clients with unusable pixmaps
this seems to fix an extremely rare issue related to both deskmirror artifacts
and crashes in deskmirror during restart; I was only able to reproduce the crash
twice in the span of over an hour of testing and it seemed to disappear after
this change
Mike Blumenkrantz [Fri, 21 Aug 2015 16:58:11 +0000 (12:58 -0400)]
Revert "deskmirror - fix dangling reference to mirror by refcounting it"
This reverts commit
5404adc54fb7f49b435e736e375bf7368321a1b0.
I'm strongly against adding refcounts/nullchecks to hide bugs which
are caused by failure to properly track object existence. let's try to avoid
this sort of thing in the future
Thierry [Fri, 21 Aug 2015 15:06:54 +0000 (17:06 +0200)]
menu: match file looked by code.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Carsten Haitzler (Rasterman) [Fri, 21 Aug 2015 12:37:21 +0000 (21:37 +0900)]
e - systray - add more sizes to icon hunt to fix missing icons
some systray indicator icons are not found because the sizes are not
in the list. fix this. this SHOULD actually use our existing efreet
icon theme finding to auto-switch file based on size changes.
Carsten Haitzler (Rasterman) [Fri, 21 Aug 2015 06:33:50 +0000 (15:33 +0900)]
deskmirror - fix dangling reference to mirror by refcounting it
add deskmirror refs to avoid segv on shutdown/restart due to mb->m
becoming a pointer to freed (now garbage) memory, so trace every
ref/unref and count them to get it right. crash gone!
Carsten Haitzler (Rasterman) [Wed, 19 Aug 2015 10:56:02 +0000 (19:56 +0900)]
e shelf - small missing set of signals - tell theme when inset scrolls
the shelf theme actually can't know if there is scrollable content in
that direction when a shelf item has autoscroll on and has content in
that direction. this is kind of a missing theme capability that is
incredibly useful if you want to do certain kinds of themes. this is
fairly minor and i'd consider ok for e20 release as we aren't even
doing alphas yet...
Mike Blumenkrantz [Fri, 21 Aug 2015 02:02:36 +0000 (22:02 -0400)]
only check dirty smart callbacks on non-new_client deskmirror clients
Mike Blumenkrantz [Fri, 21 Aug 2015 01:55:45 +0000 (21:55 -0400)]
remove dirty smart callback from deskmirror clients during client delete
Mike Blumenkrantz [Fri, 21 Aug 2015 01:55:19 +0000 (21:55 -0400)]
remove pager mirror delete callback during pager win delete
Mike Blumenkrantz [Thu, 20 Aug 2015 20:54:01 +0000 (16:54 -0400)]
add basic fullscreen window test
Mike Blumenkrantz [Thu, 20 Aug 2015 19:56:34 +0000 (15:56 -0400)]
watch dirty smart cb for currently unredirected clients in deskmirror
these clients will be unable to create a comp mirror until this callback
is triggered
fix T2585
Mike Blumenkrantz [Thu, 20 Aug 2015 19:56:02 +0000 (15:56 -0400)]
return false when failing to create a mirror during deskmirror obj check
Mike Blumenkrantz [Thu, 20 Aug 2015 19:55:35 +0000 (15:55 -0400)]
add some smart callbacks for comp objects on redirect/dirty state change
Mike Blumenkrantz [Thu, 20 Aug 2015 19:39:22 +0000 (15:39 -0400)]
force render queue and check for redirection on clients with 0x0 pixmaps
fixes an issue where resizing the current nocomp client could result in a
broken compositor until a render queue was triggered
Mike Blumenkrantz [Thu, 20 Aug 2015 19:02:23 +0000 (15:02 -0400)]
add compile warning and block load of wl_text_input module
needs vkbd module merge
Seunghun Lee [Thu, 20 Aug 2015 18:55:14 +0000 (14:55 -0400)]
Add module "wl_text_input" for supporting *wl_text_input* and *wl_input_method* protocol in wayland.
Summary:
this patch allow to use virtual keyboard such as weston-keyboard.
it was tested in wayland verion 1.6.
Test Plan:
<prerequisite>
- Configure with --enable-wl-text-input
- edit configuration file, e.cfg to enable module wl_text_input.
1. run enlightenment as a wayland display server.
2. run weston-keyboard.
3. run weston-editor.
Reviewers: raster, Sergeant_Whitespace, devilhorns, zmike
Reviewed By: zmike
Subscribers: ManMower, Sergeant_Whitespace, cedric, jihoon
Differential Revision: https://phab.enlightenment.org/D2275
Mike Blumenkrantz [Wed, 19 Aug 2015 22:19:45 +0000 (18:19 -0400)]
remove bz2 from dist
apparently people don't use this anymore or something
Mike Blumenkrantz [Wed, 19 Aug 2015 19:32:24 +0000 (15:32 -0400)]
check compositor screen iface existence before deref in dpms
fixes crash in compositors lacking screen ifaces
Mike Blumenkrantz [Wed, 19 Aug 2015 19:20:45 +0000 (15:20 -0400)]
disable xkbswitch module loading under wayland
NYI
Mike Blumenkrantz [Wed, 19 Aug 2015 18:49:34 +0000 (14:49 -0400)]
feed mouse-up event during mouse down on menus
this fixes the case where the mouse is moved while the mouse is pressed
so that the selected menu item will continue to follow the mouse
fix T2127
Mike Blumenkrantz [Wed, 19 Aug 2015 18:38:57 +0000 (14:38 -0400)]
redo fileman menus to only scan the first 100 items found
this was meant to be a quick way to navigate directories, not a fully
operational filemanager in a menu
fix T2462
Mike Blumenkrantz [Wed, 19 Aug 2015 18:36:20 +0000 (14:36 -0400)]
do not relaunch relaunchable quickaccess windows during logout
fix T2492
Mike Blumenkrantz [Wed, 19 Aug 2015 18:35:16 +0000 (14:35 -0400)]
set 'stopping' during logout action
this flag is used in some cases to determine whether to behave as
though enlightenment is stopping. in the case of logout, we are stopping.
Mike Blumenkrantz [Wed, 19 Aug 2015 18:17:12 +0000 (14:17 -0400)]
end wl xdnd drags on the compositor canvas using the full dnd end codepath
fix T2652
Mike Blumenkrantz [Wed, 19 Aug 2015 18:00:52 +0000 (14:00 -0400)]
don't set E_Client->changes.visible on successful show/hide
iirc this was a fix for something else that was going on early in
e19 development, now it creates issues when attempting to hide clients
Mike Blumenkrantz [Wed, 19 Aug 2015 17:33:43 +0000 (13:33 -0400)]
update wayland readme with current information
Chris Michael [Wed, 19 Aug 2015 16:37:39 +0000 (12:37 -0400)]
enlightenment: Remove commented out reference to wl_screenshot Makefile
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Wed, 19 Aug 2015 16:29:20 +0000 (12:29 -0400)]
enlightenment: Remove wl_screenshot module from whitelist
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Mike Blumenkrantz [Wed, 19 Aug 2015 01:06:59 +0000 (21:06 -0400)]
only use deferred focus-setting on desk flip focus if client is not visible
Mike Blumenkrantz [Tue, 18 Aug 2015 22:18:12 +0000 (18:18 -0400)]
unset E_Client->want/take_focus flags in hide callback
deferred focus should no longer be valid if a client has been hidden
before the focus-set could be triggered
fixes super fun infinite loop with desk flips
Mike Blumenkrantz [Tue, 18 Aug 2015 22:17:51 +0000 (18:17 -0400)]
do not modify E_Client->visible value in show/hide callbacks
Mike Blumenkrantz [Tue, 18 Aug 2015 21:11:01 +0000 (17:11 -0400)]
reject x11 NotifyVirtual and NotifyInferior mouse in events more accurately
these events are valid when moving from parent<->child window
fix T2674
Cedric BAIL [Mon, 17 Aug 2015 20:30:01 +0000 (22:30 +0200)]
temperature: let's finally allow the temp process to rest also when enlightenment die.
Cedric BAIL [Mon, 17 Aug 2015 20:26:24 +0000 (22:26 +0200)]
battery: let's finally allow the battery process to rest also when enlightenment die.
Mike Blumenkrantz [Mon, 17 Aug 2015 18:52:58 +0000 (14:52 -0400)]
add event rect for deskmirror in pager/taskbar modes
ensures that events are properly triggered and consumed when this
widget is clicked on
fix T2645
Mike Blumenkrantz [Mon, 17 Aug 2015 18:30:34 +0000 (14:30 -0400)]
simplify ibar focus function
Mike Blumenkrantz [Mon, 17 Aug 2015 18:27:47 +0000 (14:27 -0400)]
explicitly grab compositor on ibar focus
Mike Blumenkrantz [Mon, 17 Aug 2015 18:23:02 +0000 (14:23 -0400)]
make pager kbd/mouse grabs more effective in wayland compositors
use the same codepaths as x11 compositors, but explicitly grab the
compositor canvas
Mike Blumenkrantz [Mon, 17 Aug 2015 18:04:58 +0000 (14:04 -0400)]
handle winlist kbd events more accurately in wayland compositors
key handlers here will pick up both wayland and drm engine type events,
so ensure that we only handle events matching the compositor canvas
window to prevent unexpected behavior
fix T2637
Mike Blumenkrantz [Thu, 13 Aug 2015 21:10:54 +0000 (17:10 -0400)]
force xwl client to retain original x11 client's placed flag during swap
fixes race condition where xwl clients would sometimes erroneously place
at 0,0
Mike Blumenkrantz [Thu, 13 Aug 2015 20:20:39 +0000 (16:20 -0400)]
enable shape cutting for xwl clients during flip
fixes xwl<->xwl dnd
Mike Blumenkrantz [Thu, 13 Aug 2015 20:08:55 +0000 (16:08 -0400)]
remove some local aliasing of e_comp_wl global
Mike Blumenkrantz [Thu, 13 Aug 2015 20:05:57 +0000 (16:05 -0400)]
replace existing usage of x/wl_comp_data with corresponding globals
Mike Blumenkrantz [Thu, 13 Aug 2015 20:01:08 +0000 (16:01 -0400)]
add e_comp_x and e_comp_wl globals
constantly typing e_comp->x/wl_comp_data-> is tiring
Mike Blumenkrantz [Thu, 13 Aug 2015 17:55:16 +0000 (13:55 -0400)]
delete data device resources from hash using client
fixes crash when currently-entered wl surface is destroyed
Chris Michael [Thu, 13 Aug 2015 14:33:48 +0000 (10:33 -0400)]
enlightenment: Replace old comp_type conditionals
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 13 Aug 2015 14:31:54 +0000 (10:31 -0400)]
enlightenment: Replace old comp_type conditionals
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Mike Blumenkrantz [Thu, 13 Aug 2015 00:19:18 +0000 (20:19 -0400)]
redo wayland shot init to account for async+slow global loading
previously it was possible for the shot module to init in a wayland
compositor and fail to grab the necessary globals, resulting in black
rects for all shots
Mike Blumenkrantz [Thu, 13 Aug 2015 00:18:43 +0000 (20:18 -0400)]
add local event for wl_wl output to use when a global has been received
Mike Blumenkrantz [Thu, 13 Aug 2015 00:17:25 +0000 (20:17 -0400)]
emit randr change event on randr init
wayland compositors have been failing to create any outputs for some
time as a result of not getting any randr events on init
Mike Blumenkrantz [Wed, 12 Aug 2015 23:27:53 +0000 (19:27 -0400)]
enforce compositor canvas resizing/updating when emitting randr events
all compositors will want this to occur, so make it automatic
Mike Blumenkrantz [Wed, 12 Aug 2015 23:26:19 +0000 (19:26 -0400)]
move x11 ee resize callback to comp_canvas, simplify x11 randr event handler
this should ensure that all compositors accurately perform resize-related
canvas operations
Mike Blumenkrantz [Wed, 12 Aug 2015 22:42:42 +0000 (18:42 -0400)]
init null wl mime types array when new type is offered
Mike Blumenkrantz [Wed, 12 Aug 2015 21:59:16 +0000 (17:59 -0400)]
reject xwl selection notify events which do not match our xwl property atom
Mike Blumenkrantz [Wed, 12 Aug 2015 21:45:34 +0000 (17:45 -0400)]
don't toggle screensaver twice on x11 xdnd selection owner change
Mike Blumenkrantz [Wed, 12 Aug 2015 21:45:01 +0000 (17:45 -0400)]
only delete current drag on x11 xdnd selection loss if x11 owned selection
Mike Blumenkrantz [Wed, 12 Aug 2015 21:39:15 +0000 (17:39 -0400)]
convert E_Comp_Wl_Data_Source->mime_types to Eina_Array
this data struct fits the usage of the data more effectively
Mike Blumenkrantz [Wed, 12 Aug 2015 19:39:42 +0000 (15:39 -0400)]
track button mask for all drags, only end drag when mask has depopulated
previously, beginning a drag with the left button, then pressing and
releasing another button would result in the drag terminating without
the original button being released
Mike Blumenkrantz [Wed, 12 Aug 2015 19:11:09 +0000 (15:11 -0400)]
force sending of mouse button release on xwl drag end
seems to be necessary for the client to end its drag
Mike Blumenkrantz [Wed, 12 Aug 2015 19:04:45 +0000 (15:04 -0400)]
make wl client mouse button handler fn external
Mike Blumenkrantz [Wed, 12 Aug 2015 18:56:55 +0000 (14:56 -0400)]
break out wl client motion sending, force motion events during x11 drags
weird, but fixes xwl drag positioning
Mike Blumenkrantz [Wed, 12 Aug 2015 18:31:54 +0000 (14:31 -0400)]
fix xwl pixmap unaliasing during client deletion
no more crashing, hooray!
Chris Michael [Wed, 12 Aug 2015 18:19:47 +0000 (14:19 -0400)]
enlightenment: Remove legacy unused e_pixmap_image_draw_done function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Mike Blumenkrantz [Wed, 12 Aug 2015 18:13:21 +0000 (14:13 -0400)]
don't iterate damage rects during render in wayland compositor mode
this is a no-op that spins for no reason
Mike Blumenkrantz [Wed, 12 Aug 2015 18:12:04 +0000 (14:12 -0400)]
force copy rendering for argb wayland clients
wayland protocol for shm handling is broken for now and I can't fix
real issues because of the constant crashing when buffers disappear
randomly
Mike Blumenkrantz [Wed, 12 Aug 2015 17:27:40 +0000 (13:27 -0400)]
use unmodified client geometry for new xwl clients during first surface commit
fixes a race condition where a configure request occurring before the xwl
client swap could fail to take effect due to xwayland bug where buffer size
is reported incorrectly
Mike Blumenkrantz [Wed, 12 Aug 2015 17:25:30 +0000 (13:25 -0400)]
do not add render update on resize fail due to unusable pixmap in wl
this will not have any effect
Chris Michael [Wed, 12 Aug 2015 14:55:54 +0000 (10:55 -0400)]
enlightenment: Update README.wayland to reflect things that do not work yet
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Stefan Schmidt [Wed, 12 Aug 2015 07:26:19 +0000 (09:26 +0200)]
modules/battery: Remove assign without effect
CID: 1316024
Stefan Schmidt [Wed, 12 Aug 2015 07:25:16 +0000 (09:25 +0200)]
e_widget_filepreview: Remove assign without effect
CID: 1316023
Mike Blumenkrantz [Tue, 11 Aug 2015 20:03:01 +0000 (16:03 -0400)]
finish xwl dnd operation immediately if drop occurred somehow
Mike Blumenkrantz [Tue, 11 Aug 2015 19:27:16 +0000 (15:27 -0400)]
don't create pipe for x11->wl clipboard selections
this is never used
Mike Blumenkrantz [Tue, 11 Aug 2015 19:27:00 +0000 (15:27 -0400)]
only create fd handler for wl clipboard data source if fd is passed
Mike Blumenkrantz [Tue, 11 Aug 2015 19:26:03 +0000 (15:26 -0400)]
don't remove wl data source listener when xwl owns the selection
crash-- since xwl has no listener
Mike Blumenkrantz [Tue, 11 Aug 2015 16:55:30 +0000 (12:55 -0400)]
add separate log domain for xwayland
Chris Michael [Tue, 11 Aug 2015 13:50:41 +0000 (09:50 -0400)]
xwayland: Add missing EINA_UNUSED for unused function parameters
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Simon Lees [Tue, 11 Aug 2015 08:00:03 +0000 (10:00 +0200)]
Fix copy-paste error in comment, This page is tasks not connman
Summary: No functional change
Reviewers: zmike, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2930
Mike Blumenkrantz [Mon, 10 Aug 2015 22:52:22 +0000 (18:52 -0400)]
finish off x11<->wl clipboard support
a lot of this functionality is reused from dnd. basic selection owner
management in x11 and slapping bytes down a pipe to the wl client;
a bit laggy when pasting to wl clients sometimes, need to spend more time
debugging that...
#Kansas
Mike Blumenkrantz [Mon, 10 Aug 2015 22:51:32 +0000 (18:51 -0400)]
close xwl dnd pipe on operation end
Mike Blumenkrantz [Mon, 10 Aug 2015 22:50:56 +0000 (18:50 -0400)]
make e_comp_wl_data_device_keyboard_focus_set() external
Mike Blumenkrantz [Mon, 10 Aug 2015 22:50:31 +0000 (18:50 -0400)]
make wl clipboard source create/unref external
Mike Blumenkrantz [Mon, 10 Aug 2015 22:49:04 +0000 (18:49 -0400)]
don't crash in wl compositor when data resource is destroyed in multiple listeners
Mike Blumenkrantz [Mon, 10 Aug 2015 20:40:56 +0000 (16:40 -0400)]
only update wl dnd surface client if a wl drag is active
Mike Blumenkrantz [Mon, 10 Aug 2015 20:29:11 +0000 (16:29 -0400)]
track xwl clipboard owner
Mike Blumenkrantz [Mon, 10 Aug 2015 20:25:04 +0000 (16:25 -0400)]
use current ecore-x time when setting selection owner for xwl dnd operations
according to icccm spec, it is not recommented to use currenttime here
Mike Blumenkrantz [Mon, 10 Aug 2015 19:15:54 +0000 (15:15 -0400)]
add comp util function for determining whether xwayland is active
Mike Blumenkrantz [Mon, 10 Aug 2015 17:20:35 +0000 (13:20 -0400)]
account for state in xwl property change handler
we only care about events where the property was deleted here
Marcel Hollerbach [Mon, 10 Aug 2015 17:48:10 +0000 (19:48 +0200)]
Merge branch 'devs/bu5hm4n/mixer'
This merge fixes problems which where discovered by the mail "[e-users] alsa NOT mixer?"
Marcel Hollerbach [Mon, 10 Aug 2015 17:23:53 +0000 (19:23 +0200)]
mixer: Fix segfault when backend does not have any sink
Marcel Hollerbach [Mon, 10 Aug 2015 17:23:31 +0000 (19:23 +0200)]
mixer: only list playbackdevices if they are _real_ playbackdevices
Marcel Hollerbach [Mon, 10 Aug 2015 17:16:49 +0000 (19:16 +0200)]
mixer: update internal volume and call the changed event
Marcel Hollerbach [Mon, 10 Aug 2015 17:15:59 +0000 (19:15 +0200)]
mixer: get volume after setting channels
Marcel Hollerbach [Mon, 10 Aug 2015 16:13:25 +0000 (18:13 +0200)]
mixer: this if does not make much sense
Stefan Schmidt [Mon, 10 Aug 2015 15:00:25 +0000 (17:00 +0200)]
README.Wayland: Update to latest configure options and mention xwayland
Many of them have been out of date. Remove what is no longer needed and
mention XWayland.