Mike Blumenkrantz [Thu, 12 Nov 2015 20:06:09 +0000 (15:06 -0500)]
improve readability of E_FIRST_FRAME environment variable detection
functionality remains the same, but this is more clear for readers
Mike Blumenkrantz [Thu, 12 Nov 2015 17:42:13 +0000 (12:42 -0500)]
install emixer icon to $(datadir)/pixmaps instead of /icons
fix T2834
Mike Blumenkrantz [Wed, 11 Nov 2015 19:01:22 +0000 (14:01 -0500)]
unset release mode
Mike Blumenkrantz [Wed, 11 Nov 2015 18:40:07 +0000 (13:40 -0500)]
20.0-rc NEWS updates
Mike Blumenkrantz [Wed, 11 Nov 2015 18:39:54 +0000 (13:39 -0500)]
20.0-rc release
Mike Blumenkrantz [Wed, 11 Nov 2015 17:25:56 +0000 (12:25 -0500)]
null efm icon eio handle in error callback
ref T2829
Mike Blumenkrantz [Wed, 11 Nov 2015 16:50:51 +0000 (11:50 -0500)]
ensure that all mixer volumes resolve to the appropriate gadget icon
reported by Jef91 in #e
Carsten Haitzler (Rasterman) [Wed, 11 Nov 2015 12:22:30 +0000 (21:22 +0900)]
e screens/zones/randr - store randr2 id in xinerama and zones for lookup
so e has a bit of a problem. we mostly deal with zones, BUt these
zones come from our old xinerama code (this likely should just die
some time) and THIS code gets fed info from e's randr code. we
re-fill/modify as randr finds new screens or things get reconfigured.
thus zones adapt. the problem is now all our zone code really has a
hard time reverse mapping the zone back to where it came from -eg the
randr screen data. you literally can't do a whole bunch of things like
know if that zone was an internal laptop lid or an external screen, or
if it was rotated or even what the dpi is... as you ave no deasy way
to map it back other than by guessing geometry matches.
this fixes that by storing the randr screen id (which should be
unique) fromt he original src randr screen in the xinerama screen and
then in the zone. with this you can do a quick lookup in the e randr
data should you ever need to find the info. this should pave the way
for some other fixes/improvements, but without this they cannot be done.
@fix
Mike Blumenkrantz [Tue, 10 Nov 2015 19:32:53 +0000 (14:32 -0500)]
use unsigned int for client focus tracking freeze state
there's no reason why this should ever be negative
Mike Blumenkrantz [Tue, 10 Nov 2015 18:32:02 +0000 (13:32 -0500)]
Revert "clamp client to ABOVE layer when ending nocomp"
This reverts commit
8c6bbe0d44e7355a43e40062baed73ac013c03a6.
This Breaks Everything™.
Mike Blumenkrantz [Tue, 10 Nov 2015 17:59:26 +0000 (12:59 -0500)]
clamp client to ABOVE layer when ending nocomp
should fix case where an "Always on Top" window toggles fullscreen
Vivek Ellur [Tue, 10 Nov 2015 17:26:48 +0000 (12:26 -0500)]
Fix null dereference issue
Summary:
@Fix
possible null dereference issue while referencing cs2->id. So added a condition
to check it
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3309
Vivek Ellur [Tue, 10 Nov 2015 17:26:40 +0000 (12:26 -0500)]
Fix memory leak issue
Summary:
@Fix
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3307
Vivek Ellur [Tue, 10 Nov 2015 17:26:14 +0000 (12:26 -0500)]
e: Fix realloc issue in e font module
Summary:
@Fix
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3306
Carsten Haitzler (Rasterman) [Tue, 10 Nov 2015 10:06:06 +0000 (19:06 +0900)]
e deskmirror - fix loss of mirror object from deskmirror
this fixes T2830
@fix
Carsten Haitzler (Rasterman) [Tue, 10 Nov 2015 09:51:56 +0000 (18:51 +0900)]
ibar - fix shutdown if ibar client menu is up
valgrind pointed out a referencing issue with the ibar client menu on
hover and if e is shut down while this is up. it ends up referencing
an already deleted ibar icon, so delete the menu objects that
reference the icon if icon is deleted.
@fix
Mike Blumenkrantz [Mon, 9 Nov 2015 19:29:23 +0000 (14:29 -0500)]
check client comp data existence in x11 mirror visibility callbacks
Mike Blumenkrantz [Mon, 9 Nov 2015 18:20:50 +0000 (13:20 -0500)]
enforce fullscreen client stacking during nocomp end IFF client is fullscreen
previous behavior would result in the nocomp window becoming stuck at a fullscreen
layer when ending nocomp, even if the client was no longer fullscreen
fix T2827
Mike Blumenkrantz [Mon, 9 Nov 2015 18:11:26 +0000 (13:11 -0500)]
disable client menu stacking functions for unstackable windows
any client stacked higher than E_LAYER_CLIENT_ABOVE should never be
user-stacked
Stafford Horne [Sun, 8 Nov 2015 03:52:21 +0000 (22:52 -0500)]
e/desk_wallpaper: Fix setting wallpaper from within Virtual Desk dialog
Summary:
It seems this was missed when doing the manager/container id removal
back in march. The param validation was failing and causing the "Set"
button to not work in "Screen > Virtual Desktops > Click to Change
wallpaper".
Test Plan:
1. Open "Screen > Virtual Desktops > Click to Change wallpaper"
2. Click "Set"
- Expect that a wallpaper dialog be shown
- Before this patch nothing happens
Reviewers: zmike
Subscribers: cedric, seoz
Differential Revision: https://phab.enlightenment.org/D3298
Mike Blumenkrantz [Sat, 7 Nov 2015 18:12:14 +0000 (13:12 -0500)]
Revert "force a software render in all cases when finalizing x11 client iconify"
This reverts commit
1a87463083fa9e343aa38b4c8824db0c92645b8e.
no longer necessary
Mike Blumenkrantz [Sat, 7 Nov 2015 18:10:02 +0000 (13:10 -0500)]
toggle x11 client iconic/mapped state based on mirror visibility
in order to continue rendering an iconic client without breaking icccm,
it's necessary to map the client's window again and unset iconic state
whenever rendering is needed, then re-set states when rendering
stops
ref T2788
Mike Blumenkrantz [Sat, 7 Nov 2015 18:09:23 +0000 (13:09 -0500)]
add e_comp_object_mirror_visibility_check()
can be used to check whether visible mirrors exist for a comp object
Mike Blumenkrantz [Sat, 7 Nov 2015 18:08:12 +0000 (13:08 -0500)]
add counter and smart callbacks for comp object visible mirrors
ref T2788
Mike Blumenkrantz [Sat, 7 Nov 2015 18:07:07 +0000 (13:07 -0500)]
emit ibox icon signals to the internal edje object of the e_icon
Mike Blumenkrantz [Sat, 7 Nov 2015 18:06:23 +0000 (13:06 -0500)]
move client iconic hint setting into x11 hide function
e_hints should probably be merged into the x11 compositor entirely
at some point
Mike Blumenkrantz [Sat, 7 Nov 2015 18:05:18 +0000 (13:05 -0500)]
break out x11 client visibility setting into util functions
Mike Blumenkrantz [Sat, 7 Nov 2015 17:23:04 +0000 (12:23 -0500)]
set e_comp->gl for wayland compositors based on gl display bind success
Stafford Horne [Sat, 7 Nov 2015 17:11:53 +0000 (12:11 -0500)]
e/ilist: Fix issue with multiselect returning wrong index
Summary:
I noticed this because the description dialog in "Apps > Startup Application"
was never getting properly populated.
Test Plan:
When selecting items in the "Apps > Startup Applications" config the
description should update if a "Comment" field is available in the
.desktop file.
Reviewers: zmike
Subscribers: cedric, seoz
Differential Revision: https://phab.enlightenment.org/D3297
Stafford Horne [Sat, 7 Nov 2015 17:11:49 +0000 (12:11 -0500)]
e/conf_apps: Fix resizing of "Startup Application" dialog
Summary:
Currently the config dialog in Apps > Startup Applications does not properly
resized as one of the objects is not set to horizontal fill.
Test Plan: 1. Resize "Apps > Startup Applications", it should resize the list with the window
Reviewers: zmike
Subscribers: cedric, seoz
Differential Revision: https://phab.enlightenment.org/D3296
Mike Blumenkrantz [Thu, 5 Nov 2015 20:29:34 +0000 (15:29 -0500)]
adjust efm multi-icon drag positioning by the current pan coords
fixes positioning when dragging multiple icons after scrolling
Mike Blumenkrantz [Thu, 5 Nov 2015 20:28:50 +0000 (15:28 -0500)]
account for window position in efm window drag initial positioning
fix T2819
shorne [Thu, 5 Nov 2015 07:03:26 +0000 (16:03 +0900)]
e/win_config: allow content of some dialogs to resize with the window
Summary:
Currently the dialogs in Winows > Window List Menu and Window Display are
resizable the their content does not resize. This patch fixes that.
Test Plan: Open windows in window config dialog and ensure they can resize propertly
Reviewers: zmike
Subscribers: raster, cedric, seoz
Differential Revision: https://phab.enlightenment.org/D3275
Mike Blumenkrantz [Wed, 4 Nov 2015 23:26:06 +0000 (18:26 -0500)]
remove note about window close crashing
fixed courtesy of the majestic compiler #warning for shm buffers
Mike Blumenkrantz [Wed, 4 Nov 2015 17:18:36 +0000 (12:18 -0500)]
check for wayland egl extensions before starting a gl compositor
when running in software mode, evasgl performs no checking to determine
whether gl is available, leading to a crash due to missing extensions
Nicolas Aguirre [Tue, 3 Nov 2015 07:01:58 +0000 (08:01 +0100)]
Revert "Adds eglfs to Enlightenment"
This reverts commit
ff1e7b50834e183f336fd427298981c6a9ebf7e8.
Nicolas Aguirre [Tue, 3 Nov 2015 07:01:48 +0000 (08:01 +0100)]
Revert "configure.ac: fixes wayland-only build"
This reverts commit
829a12ef86c6ab32b3f42a6440a5ed584a4fe10b.
Nicolas Aguirre [Tue, 3 Nov 2015 07:01:42 +0000 (08:01 +0100)]
Revert "e_signals.c: Inclues Ecore_DRM only if WL_DRM is built and not only if WAYLAND is built"
This reverts commit
96e304bc904c49df406b34108d7442835025349d.
Nicolas Aguirre [Tue, 3 Nov 2015 07:01:35 +0000 (08:01 +0100)]
Revert "wl_eglfs: enable gl acceleration, mouse, touchscreen and keyboard"
This reverts commit
c99d46ae666a753c36313826747ef1f72dab07ca.
Nicolas Aguirre [Tue, 3 Nov 2015 07:01:26 +0000 (08:01 +0100)]
Revert "[HACK??] Fixes wayland-only build"
This reverts commit
bc3464e98c94638cb4cbe0065fa512413ac51c91.
Nicolas Aguirre [Tue, 3 Nov 2015 07:01:18 +0000 (08:01 +0100)]
Revert "Fixes build complaining about missing ABOUT-NLS"
This reverts commit
b39ec87150c9ccb06b3ab934a52ffa8b08cb29bf.
Nicolas Aguirre [Tue, 3 Nov 2015 06:57:56 +0000 (07:57 +0100)]
Revert "Don't load xwayland if it isn't compiled"
This reverts commit
496ae3746f94e2fab2c40d6bdf16e7f953ddba1a.
Florent Revest [Wed, 29 Jul 2015 13:26:41 +0000 (15:26 +0200)]
Don't load xwayland if it isn't compiled
Florent Revest [Mon, 27 Jul 2015 15:52:48 +0000 (17:52 +0200)]
Fixes build complaining about missing ABOUT-NLS
Florent Revest [Mon, 27 Jul 2015 15:40:13 +0000 (17:40 +0200)]
[HACK??] Fixes wayland-only build
Florent Revest [Mon, 27 Jul 2015 15:21:57 +0000 (17:21 +0200)]
wl_eglfs: enable gl acceleration, mouse, touchscreen and keyboard
Florent Revest [Mon, 27 Jul 2015 15:21:04 +0000 (17:21 +0200)]
e_signals.c: Inclues Ecore_DRM only if WL_DRM is built and not only if WAYLAND is built
Florent Revest [Mon, 27 Jul 2015 15:20:16 +0000 (17:20 +0200)]
configure.ac: fixes wayland-only build
Florent Revest [Tue, 21 Jul 2015 16:09:04 +0000 (18:09 +0200)]
Adds eglfs to Enlightenment
Mike Blumenkrantz [Mon, 2 Nov 2015 21:23:20 +0000 (16:23 -0500)]
add wayland egl client support
definitely not a feature, I promise™
Mike Blumenkrantz [Mon, 2 Nov 2015 20:54:38 +0000 (15:54 -0500)]
use e_comp->gl flag to set native surface state
e_comp_gl_get() is for determining if gl exists, not if it's being used
Mike Blumenkrantz [Mon, 2 Nov 2015 20:54:13 +0000 (15:54 -0500)]
fix comp object native surface config checking for non-x11 compositors
Mike Blumenkrantz [Mon, 2 Nov 2015 20:53:04 +0000 (15:53 -0500)]
add native surface (gl) clients to post render list
forgot to add this when I was redoing it for sw
ref
4d30674ab87001d6a1515908341d756d75a22a89
Mike Blumenkrantz [Mon, 2 Nov 2015 19:53:15 +0000 (14:53 -0500)]
Revert "queue pending buffers for wayland shm clients"
This reverts commit
1ee825d29c2ca6d35da5f0860838d57019bca3f2.
this was fixing the wrong problem and was not functioning accurately
in any case
Carsten Haitzler (Rasterman) [Mon, 2 Nov 2015 03:28:27 +0000 (12:28 +0900)]
e exec tracker - fix tracking to update desktop files on efreet change
efreet will send change events meaning out desktop file icons are
invalid now. we have refs but content is junk. update these to new
desktop ptr handles by using the exec key to look up new ones on the
change event. this fixes ibar gainign a bunch of blank unknown icons
when any desktop files are touched on the system or user dirs
@fix
Mike Blumenkrantz [Fri, 30 Oct 2015 19:03:29 +0000 (15:03 -0400)]
simplify client SMART/EXPAND maximize
calling e_client_resize_limit() here was misleading since the values
were never used
Mike Blumenkrantz [Thu, 29 Oct 2015 18:33:15 +0000 (14:33 -0400)]
adjust non-x11 client's saved frame geometry when changing csd
this seems to be a more comprehensive solution for retaining previous
window sizes after toggling various csd-affecting window states in wayland
Mike Blumenkrantz [Thu, 29 Oct 2015 18:21:42 +0000 (14:21 -0400)]
Revert "when maximizing a wayland client with csd, use window geometry"
This reverts commit
6e5e51c2b8647a41f156e2854be409780492a679.
not a complete solution, makes client code somewhat unreadable
Mike Blumenkrantz [Wed, 28 Oct 2015 16:55:09 +0000 (12:55 -0400)]
add E_COMP_ENGINE env var to determine sw/gl
accepted values are 1, 2, sw, gl
toggling config options is a hassle when debugging
Mike Blumenkrantz [Mon, 26 Oct 2015 17:11:32 +0000 (13:11 -0400)]
clean up some systray leaks
Mike Blumenkrantz [Mon, 26 Oct 2015 17:02:34 +0000 (13:02 -0400)]
always unalias x11 client parent window <-> pixmap relation during delete
deleted state is not relevant, this should always be removed during deletion
to prevent further referencing of a deleted client
fix T2803
Flavio Ceolin [Sat, 24 Oct 2015 02:22:48 +0000 (00:22 -0200)]
modules:mixer: Avoid pa backend from crash
Check the pulseaudio's context error and if info is not null before
get server's information.
Carsten Haitzler (Rasterman) [Sat, 24 Oct 2015 02:01:56 +0000 (11:01 +0900)]
e - ibar - fix clash when 2 icons of the same path get added somehow
i encontered a situation where the icon_hash contained a garbage entry
- had been freed already. the only way i can see this happening is if
the desktop file changed path during runtime thus the icon was never
removed from hash on free as string didnt match. store string used
when adding to hash so removal is guarannteed to work and also for
good measure protect against double-adding (and generate a new string
for storage using timestamp which should be unique).
so this fixes a crash i was just looping on.
@fix
Mike Blumenkrantz [Fri, 23 Oct 2015 18:04:42 +0000 (14:04 -0400)]
unset release mode
Mike Blumenkrantz [Fri, 23 Oct 2015 17:32:29 +0000 (13:32 -0400)]
20.0-beta NEWS updates
Mike Blumenkrantz [Thu, 1 Oct 2015 17:42:45 +0000 (13:42 -0400)]
20.0-beta release
Mike Blumenkrantz [Fri, 23 Oct 2015 17:28:15 +0000 (13:28 -0400)]
add NEWS from 19.12 release
Mike Blumenkrantz [Fri, 23 Oct 2015 16:56:56 +0000 (12:56 -0400)]
when maximizing a wayland client with csd, use window geometry
wayland clients which have csd must be resized according to window geometry,
not client (surface) geometry. this is somewhat tricky to handle because x11
clients which have csd work the exact opposite way and must continue to be
managed using client geometry
this is not my ideal solution for this issue, but I can't think of a
better one at this time which fully fixes wayland client maximization
Mike Blumenkrantz [Thu, 22 Oct 2015 23:27:01 +0000 (19:27 -0400)]
reject frame theme changes for clients which have CSD
Mike Blumenkrantz [Thu, 22 Oct 2015 23:25:07 +0000 (19:25 -0400)]
only apply frame geometry deltas for CSD if the CSD region exists
ref
e931e86161d7f419e44652b533fea4dc9b16241b
Mike Blumenkrantz [Thu, 22 Oct 2015 23:24:11 +0000 (19:24 -0400)]
set client input rects more accurately, accounting for SSD
Mike Blumenkrantz [Thu, 22 Oct 2015 23:22:48 +0000 (19:22 -0400)]
enforce cw->obj pass_events state more accurately
changing the edje file of cw->shobj can change the pass_events state
of its child object, cw->obj
Mike Blumenkrantz [Thu, 22 Oct 2015 22:44:51 +0000 (18:44 -0400)]
clip client input rect to client geometry, not window geometry
when using csd, the window geometry will be smaller than the surface,
resulting in an unusually small input region
Mike Blumenkrantz [Thu, 22 Oct 2015 18:14:20 +0000 (14:14 -0400)]
defer all module error dialogs
due to the (current) synchronous creation of wayland surfaces in efl,
creating these dialogs during startup will result in a crash. the only
way to prevent this and still display the dialogs is to wait a bit and
show the dialogs after init has completed
Mike Blumenkrantz [Thu, 22 Oct 2015 17:50:18 +0000 (13:50 -0400)]
completely remove access module
as promised almost a year ago, this module has been unmaintained to
the point where it cannot function in any way, and attempting to keep
it in the tree is a futile effort
this module can now be found at devs/discomfitor/e_module-access.git
ref
77717523f3e6c327ddd797ad064a97c467e6f90b
Mike Blumenkrantz [Thu, 22 Oct 2015 17:18:14 +0000 (13:18 -0400)]
remove dead modules from whitelist
Mike Blumenkrantz [Thu, 22 Oct 2015 16:49:51 +0000 (12:49 -0400)]
unconditionally show opengl option in compositor settings
enlightenment is not always running in x11, so making this option
dependent on xlib will break other environments
Mike Blumenkrantz [Wed, 21 Oct 2015 21:17:49 +0000 (17:17 -0400)]
add hacks to work around pulseaudio+xwayland integration deadlocks
enlightenment is (I think) the first wayland compositor to run with
in-process pulseaudio integration for audio playback and not just mixer
support. hooray.
this results in a fun issue: if DISPLAY is set, as it must be for x11
clients to function, pulseaudio will unconditionally attempt to use a
blocking socket connection to create a connection to the running xserver.
the only exception here is if x11 support has been compiled out of pulseaudio,
but probably no distro will do that ever.
so, what happens when the compositor thread tries to create a socket connection
to the xserver that the compositor thread has not yet started? absolutely nothing.
forever.
the easiest solution which continues to provide the key press sounds that everyone
loves is to ensure that the pulseaudio connection is created before DISPLAY is ever
set, namely in the xwayland module init.
this will now occur automatically now in the case when the mixer module detects
pulseaudio support.
TL;DR: don't disable mixer module if you use xwayland
Mike Blumenkrantz [Wed, 21 Oct 2015 19:58:07 +0000 (15:58 -0400)]
require efl >= 1.16 for wayland support
the fact is that nobody developing this has tested with 1.15.x recently,
and almost none of the changes have been backported to that branch. better
to require a newer version than to present a failing user experience
Mike Blumenkrantz [Wed, 21 Oct 2015 19:17:25 +0000 (15:17 -0400)]
make comp config unresizable...again
ref
5178197f602da6cff94e03f20c522d5b1a631ae7
Mike Blumenkrantz [Wed, 21 Oct 2015 18:20:24 +0000 (14:20 -0400)]
do not use ecore-x functions in scale config while running in wayland
Mike Blumenkrantz [Wed, 21 Oct 2015 18:05:02 +0000 (14:05 -0400)]
append new keyboard resources for wayland focused-client to the focused list
fixes all cases where applications would fail to receive focus initially
and then be permanently broken
Mike Blumenkrantz [Wed, 21 Oct 2015 17:49:13 +0000 (13:49 -0400)]
fix typo in wayland keyboard resource unbind list management
Mike Blumenkrantz [Wed, 21 Oct 2015 16:23:44 +0000 (12:23 -0400)]
do not use x11 input windows for grab dialogs when running in wayland
Chris Michael [Wed, 21 Oct 2015 14:26:18 +0000 (10:26 -0400)]
Fix e_menu trying to swallow an object from a different canvas
_e_menu_realize was trying to swallow the menu->container_object into
the menu->bg_object, but the menu->bg_object was being created on the
compositor canvas, and the container object was being created on the
e_comp->elm_win.
With recent EFL changes, this causes an abort inside Evas.
To fix this, set the menu->evas to be the Evas from the e_comp->elm_win.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Mike Blumenkrantz [Mon, 19 Oct 2015 21:19:32 +0000 (17:19 -0400)]
update csd using deltas of previous values
when applying new csd to a window which already has csd, the previous
csd must be removed in order to apply any new csd offsets in order to
avoid unwanted moving/resizing
Seunghun Lee [Mon, 19 Oct 2015 15:43:07 +0000 (11:43 -0400)]
e-comp-wl-input: don't leak the initial keymap.
Summary: remove xkb_map_ref() for keymap in _e_comp_wl_input_keymap_update().
Test Plan: N/A
Reviewers: devilhorns, zmike
Subscribers: ManMower, cedric
Differential Revision: https://phab.enlightenment.org/D3173
Thierry [Fri, 16 Oct 2015 20:29:19 +0000 (13:29 -0700)]
mouse_config: fix accel threshold and numerator limits.
man xset => If the `threshold' parameter is provided and 0, the
`acceleration' parameter will be used in the exponent of a more
natural and continuous formula, giving precise control for slow motion
but big reach for fast motion, and a progressive transition for motions
in between. Recommended `acceleration' value in this case is 3/2 to 3,
but not limited to that range.
Mike Blumenkrantz [Fri, 16 Oct 2015 19:45:23 +0000 (15:45 -0400)]
queue pending buffers for wayland shm clients
due to how deferred rendering works, it's possible for a client to
send a second buffer before enlightenment has rendered the first one.
in this situation, it seems that the best solution is to queue successive
buffers (frames) and pop the queue after each render
ref T2784
Mike Blumenkrantz [Thu, 15 Oct 2015 19:33:28 +0000 (15:33 -0400)]
force a software render in all cases when finalizing x11 client iconify
since ICCCM requires that clients be unmapped while iconified, it's necessary
for the compositor to perform one last render prior to the unmap in order to
ensure that mirror objects will still appear as expected. this render must use
the pixmap buffer data in order to avoid timing issues due to async/deferred
rendering, and it is only necessary for the case of clients rendering with a
native surface
fix T2788
Mike Blumenkrantz [Thu, 15 Oct 2015 19:32:38 +0000 (15:32 -0400)]
clear x11 client pixmap when returning from iconic
ensure pixmap remains usable during the entire hide process
Mike Blumenkrantz [Thu, 15 Oct 2015 17:10:58 +0000 (13:10 -0400)]
check systray dbus name existence before attempting to recover session
in the case that a system error occurs the dbus method for returning the
session name can fail, leading to a null return
CID 1327399
Mike Blumenkrantz [Thu, 15 Oct 2015 16:58:32 +0000 (12:58 -0400)]
use dbus unique name for tracking systray sessions
the env var DBUS_SESSION_BUS_ADDRESS may not be set for all platforms
where enlightenment+dbus are usable, so it's necessary to get the dbus
id to ensure that this value exists and is properly tracked
Mike Blumenkrantz [Thu, 15 Oct 2015 16:40:00 +0000 (12:40 -0400)]
reject deleted clients from x11 sync alarm event callback
E_Client->comp_data is null after a client has been deleted, so
attempting to handle events which require the dereferencing of this
pointer after a client has been deleted will result in a crash
these events should be rejected after delete regardless, since at this
time the compositor has stopped handling events for the client
ref
f42c6aa1871cca6c6ffb39b65e2bfa3815bff35c
Carsten Haitzler (Rasterman) [Thu, 15 Oct 2015 10:26:00 +0000 (19:26 +0900)]
e - comps sync - ec client was null - i think, so protect against crash
i got a crash here and the bt was broken and i couldnt check if
_e_comp_x_client_data_get() returned null, but it's the only thing
that would make sense, so protect against this to avoid a crash. as
this was a one-off, i can't find out more,
@fix
Marcel Hollerbach [Wed, 14 Oct 2015 10:18:41 +0000 (12:18 +0200)]
systray: search for the best available resolution of a icon
For example in telegram the first icon which was transmitted was in a
pretty bad resolution, the new code searches the best res.
Mike Blumenkrantz [Wed, 14 Oct 2015 20:30:41 +0000 (16:30 -0400)]
cache systray items for each dbus session
the current spec does not directly require any behavior from clients
when a systray host, leading to an issue where clients do not re-register
their items when a new host appears
when using an in-process systray watcher, as the current implementation does,
the best choice for maintaining consistency for systray items across restarts
is to cache them according to the current dbus session. the process of setting
up the item will validate it on subsequent restarts, and changes to the session
will clear the cache
fix T2786
Amitesh Singh [Wed, 14 Oct 2015 18:02:07 +0000 (14:02 -0400)]
e_flowlayout: typecast return value to int
Summary:
return value is small enough, so there is no risk in casting from unsigned int to signed int.
CID: 1267211
Reviewers: devilhorns, raster, cedric, zmike
Subscribers: seoz, sachin.dev
Differential Revision: https://phab.enlightenment.org/D3179
Mike Blumenkrantz [Wed, 14 Oct 2015 16:51:45 +0000 (12:51 -0400)]
trap shaped x11 clients and prevent compositor blocking with high rect count
in the case where a shaped window with many rects exists, there is a high
probability of the damage rect count being huge, leading to massive blocking for
each frame as the compositor attempts to fetch all of these rects from the xserver.
instead, the compositor can shortcut this by forcing a full-window damage any time
the rect count is sufficiently high, trading a blocking socket operation for some
amount of (potential) overdraw.
testing in affected scenarios has shown huge improvements: where previously the entire
compositor would lock up, things work as expected now
see https://bugzilla.mozilla.org/show_bug.cgi?id=1214746 for a sample case
Mike Blumenkrantz [Wed, 14 Oct 2015 16:50:17 +0000 (12:50 -0400)]
do not return when x11 damage event returns no rects
ensure first_damage flag is set in all cases