Commit Graph

19328 Commits

Author SHA1 Message Date
Mike Blumenkrantz d153532b4a 19.14 NEWS updates 2015-11-30 14:11:38 -05:00
Mike Blumenkrantz 7eb415cc98 19.14 release 2015-11-30 14:10:46 -05:00
Mike Blumenkrantz 626a4944e6 re-swallow bg_object after wallpaper transition has completed
fixes eventing/stacking on bg object
2015-11-25 12:38:28 -05:00
Mike Blumenkrantz 28a40d359f allow more client hooks to bypass delete check
failing to propagate these signals can result in a broken compositor
when a client is deleted before/during an operation
2015-11-24 21:44:58 -05:00
Mike Blumenkrantz 3732a233e2 do not apply max client geometry restriction if max geometry is not set
default values for these is set to a very high value, but it's possible
(and guaranteed) for some clients to set them to a value <= 0, which results
in a broken window
2015-11-24 21:44:50 -05:00
Mike Blumenkrantz 1ae6f76d7d use CSD geometry during move/resize display
this should provide more user-relevant information
2015-11-24 21:44:45 -05:00
Mike Blumenkrantz c685d799c1 avoid setting incorrect geometry during new_client frame calc
in the case where a client has no geometry set, attempting to update
the client's geometry during frame recalc will guarantee that wrong
geometry is set, resulting in a bad first frame
2015-11-24 21:44:38 -05:00
Stafford Horne 38411a8624 e/core: Fix minor mem leak when reading module paths
Summary:
Found this with a quick valgrind session.  For paths that are not directories, if we fail the `ecore_file_is_dir` condition memory will not be freed.

The change is to use the default e_path freeing function.

Test Plan:
Run enlightenment in valgrind.  It should no longer show a mem leak like below.

```
==6912== 8 bytes in 1 blocks are definitely lost in loss record 186 of 5,940
==6912==    at 0x4C28C50: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6912==    by 0x4D8574: e_path_dir_list_get (e_path.c:326)
==6912==    by 0x4D1BA4: e_module_init.part.0 (e_module.c:183)
==6912==    by 0x4D1DA8: e_module_init (e_module.c:153)
==6912==    by 0x4371ED: main (e_main.c:868)
```

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3356
2015-11-19 20:45:39 -05:00
Mike Blumenkrantz 9d426dc1e7 ensure that a deskmirror object does not orphan child objects
ref T2846, T2830
2015-11-19 16:20:33 -05:00
Mike Blumenkrantz 468757c8c1 Revert "e deskmirror - fix loss of mirror object from deskmirror"
This reverts commit bd0c590489.

the m->mirror object can never be deleted except in the case of a client
being removed from the owner desk. removing it at any point will break any
users of the deskmirror api and create other issues

ref T2846
2015-11-19 16:20:27 -05:00
Mike Blumenkrantz 42ad1e640a block task gadget refills while a drag is active
it's impossible to use a pager effectively with a task gadget due to
the constant resizing of the tasks gadget during any kind of window move
2015-11-19 16:20:18 -05:00
Mike Blumenkrantz 92fd6db69f always create compositor mirror objects, ignore pixmap image state
checking pixmap image state in this case resulted in mirrors failing to
be created in some cases when there was no reason to fail

ref T2846
2015-11-19 16:20:05 -05:00
Mike Blumenkrantz 979d4724b9 further improve csd calculations for x11 clients
there was previously a frame in which maximized x11 csd clients would
reposition themselves offscreen before rendering

this is now fixed by adjusting the client geometries either upon
unsetting the csd or re-setting it, allowing the client to retain its
expected positioning without jitters
2015-11-19 16:13:42 -05:00
Mike Blumenkrantz 9539e36707 update E_Client->desk member upon focusing a sticky client
a sticky window previously would always have the desk set for where
it was set as sticky, meaning that anything which tries to access it
will be reading wrong data here.
more useful information to provide is the last desk which the sticky
client was focused on, so update that upon focusing it
2015-11-19 16:07:33 -05:00
Mike Blumenkrantz 858995d6b2 do not refill all tasks bars when a sticky window changes desks 2015-11-19 16:07:21 -05:00
Mike Blumenkrantz 5d4d03ca11 do not add new deskmirror clients on desk_set event if client already exists 2015-11-19 16:03:59 -05:00
Mike Blumenkrantz 7bdbc9c9e4 improve x11 client focusing with mouse-based focus policies on mouse move
in the case that a mouse move event occurs, the compositor should validate
the event to ensure that the mouse cursor is actually over the window that
the event claims to be from

fix T2594
2015-11-12 17:24:46 -05:00
Mike Blumenkrantz ab751d1e73 19.13 NEWS updates 2015-11-12 12:46:55 -05:00
Mike Blumenkrantz 06692431f9 19.13 release 2015-11-12 12:44:30 -05:00
Mike Blumenkrantz 26ccdd3907 null efm icon eio handle in error callback
ref T2829
2015-11-11 13:18:00 -05:00
Mike Blumenkrantz bc2d090572 use unsigned int for client focus tracking freeze state
there's no reason why this should ever be negative
2015-11-10 14:50:34 -05:00
Carsten Haitzler 87edcc861b e deskmirror - fix loss of mirror object from deskmirror
this fixes T2830

@fix
2015-11-10 14:50:25 -05:00
Carsten Haitzler a7b5a06640 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
2015-11-10 14:50:13 -05:00
Mike Blumenkrantz 014d700f91 check client comp data existence in x11 mirror visibility callbacks 2015-11-09 14:35:22 -05:00
Mike Blumenkrantz 245bb97922 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
2015-11-09 14:34:09 -05:00
Mike Blumenkrantz eefba09456 disable client menu stacking functions for unstackable windows
any client stacked higher than E_LAYER_CLIENT_ABOVE should never be
user-stacked
2015-11-09 14:32:50 -05:00
Mike Blumenkrantz 755073b5fc Revert "force a software render in all cases when finalizing x11 client iconify"
This reverts commit 280e7e959d.
2015-11-09 14:32:50 -05:00
Mike Blumenkrantz 3e5d970c2f 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
2015-11-09 14:32:47 -05:00
Mike Blumenkrantz e8c7f5686c add e_comp_object_mirror_visibility_check()
can be used to check whether visible mirrors exist for a comp object
2015-11-09 14:25:25 -05:00
Mike Blumenkrantz a372c31b84 add counter and smart callbacks for comp object visible mirrors
ref T2788
2015-11-09 14:25:16 -05:00
Mike Blumenkrantz 71b113f44c emit ibox icon signals to the internal edje object of the e_icon 2015-11-09 14:23:43 -05:00
Mike Blumenkrantz c31824c2ef move client iconic hint setting into x11 hide function
e_hints should probably be merged into the x11 compositor entirely
at some point
2015-11-09 14:23:23 -05:00
Mike Blumenkrantz 3a16a86ea3 break out x11 client visibility setting into util functions 2015-11-09 14:23:11 -05:00
Stafford Horne cd2ebfe532 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
2015-11-09 14:23:11 -05:00
Stafford Horne 27a798c4f1 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
2015-11-09 14:23:11 -05:00
Mike Blumenkrantz 88726e8df3 adjust efm multi-icon drag positioning by the current pan coords
fixes positioning when dragging multiple icons after scrolling
2015-11-09 14:23:11 -05:00
shorne c7cd4178a7 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
2015-11-09 14:23:11 -05:00
Mike Blumenkrantz 8589289ff5 add native surface (gl) clients to post render list
forgot to add this when I was redoing it for sw

ref 4d30674ab8
2015-11-09 14:23:08 -05:00
Carsten Haitzler 82e2e93fd2 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
2015-11-09 14:14:42 -05:00
Mike Blumenkrantz ff1ef7281b simplify client SMART/EXPAND maximize
calling e_client_resize_limit() here was misleading since the values
were never used
2015-11-09 14:05:17 -05:00
Carsten Haitzler e311bc2372 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
2015-11-09 14:04:37 -05:00
Mike Blumenkrantz 9324313948 reject frame theme changes for clients which have CSD 2015-11-09 14:04:29 -05:00
Mike Blumenkrantz dfa3b4060c only apply frame geometry deltas for CSD if the CSD region exists
ref e931e86161
2015-11-09 14:04:24 -05:00
Mike Blumenkrantz 90b0708fb1 remove dead modules from whitelist 2015-11-09 14:04:03 -05:00
Mike Blumenkrantz ffc1f2604a make comp config unresizable...again
ref 5178197f60
2015-11-09 14:03:51 -05:00
Mike Blumenkrantz 1529bebcb0 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
2015-11-09 14:03:35 -05:00
Thierry bc09dfeefe 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.
2015-10-17 12:00:40 -04:00
Mike Blumenkrantz 280e7e959d 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
2015-10-15 17:05:15 -04:00
Mike Blumenkrantz 979937cc20 clear x11 client pixmap when returning from iconic
ensure pixmap remains usable during the entire hide process
2015-10-15 17:04:02 -04:00
Mike Blumenkrantz 988df882ea 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 f42c6aa187
2015-10-15 14:02:17 -04:00