objects below the bottom client are unnecessary, so it's better to just start with the bottom client. this has a nice side effect of working around a weird evas bug where layers can exist while having no objects, breaking stacking iterator functions
when this feature was added, its behavior was naively set to ignore repeated desk changes. it also was not adequately tested, resulting in a frustratingly large number of bugs.
with these changes, window profiles should no longer be the cause of client visibility being broken as caused by a failure to change desk.
fix TChutney
This reverts commit 1f8975d546.
totally wrong. do not externally set this.
this issue, which I cannot reproduce, is almost definitely caused due to the fact that _evas_object_layer_set() effectively calls evas_object_raise() without triggering intercept callbacks
Summary: Use a EINA_LOG_LEVELS environment variable for setting log level instead of a E_LOG_LEVEL macro
Test Plan:
run e with EINA_LOG_LEVELS=e:4 environment variable.
we can see log messages using EINA_LOG_DOM_DBG.
Reviewers: zmike, raster, devilhorns
Reviewed By: raster
CC: cedric
Differential Revision: https://phab.enlightenment.org/D885
Summary:
Since mouse up handler is invoked after selector_free, there was a crash.
reproduce: double click on selector area (tabbar area on top) to launch app -> SEGV
Fixes T1264
Test Plan: enlightenment -> everything -> double click on selector area (tabbar on top)
Reviewers: raster, zmike
CC: seoz, cedric
Maniphest Tasks: T1264
Differential Revision: https://phab.enlightenment.org/D886
Summary:
change the time to call _add_hook to eval_fetch in tiling.
finally, tiling resize window after setting desk of client.
Reviewers: tasn
CC: cedric
Differential Revision: https://phab.enlightenment.org/D869
Summary:
initailize the tinfo before calling _remove_client.
remove call "_desk_should_tile_check" in "_remove_client", and added it before calling "_remove_client".
That's beause, in _desk_set_hook, use ev->desk (old desk) to initialize tinfo, and then only remove ec using _remove_client.
Test Plan:
(1) launch any app in one desk.
(2) change the any desk.
(3) launch browser or xchat like the app that launch time is relatively slow.
(4) change the in (1)'s desk quickly before completely launching browser or xchat.
(5) you can see wrong splited screen.
Reviewers: tasn, raster, zmike
CC: cedric
Differential Revision: https://phab.enlightenment.org/D860
Summary:
initialize the tinfo when remove client in tiling.
the reason why of "freezing" that tiling added window twice into _G.tinfo->tree.
then tiling module set to a different size about same window as if two different window.
finally, the event "E_EVENT_CLIENT_MOVE" occurs by changing geometry, and tiling resize the window again by the event "E_EVENT_CLIENT_MOVE".
next, it is the cause of this problem.
In (4), when user types ALT+TAP.
- tiling module adds uniconify window into _G.tinfo->tree.
- at this time, _G.tinfo is the informaion of one desk.
- E create input_only window and destoryed for a moment.
- tiling module initialize the _G.tinfo by the event EVAS_CALLBACK_DEL happend by destorying input window.
- now, _G.tinfo is the informaion of the other desk.
In (5), iconify app.
- tiling try to remove window from _G.tinfo->tree, but failed. (problem)
- because _G.tinfo isn't initialized to the desk including uniconify window at that time.
In (6), uniconify app.
- tiling change the _G.tinfo, then insert client info to _G.tinfo.
so I suggest that initializing the _G.tinfo when removing window.
Test Plan:
(1) launch any app.
(2) Iconify it.
(3) change the desk different with launching app.
(4) Uniconify app by ALT+TAP.
(5) Iconify it again.
(6) Uniconify it again.
Reviewers: raster, zmike, tom, tasn
Reviewed By: tasn
CC: cedric
Differential Revision: https://phab.enlightenment.org/D850
Summary:
currently, if we shrink pager gadget horizontally, the resize guide (blue rectangle) became smaller (16x16, pager16: 4x4) than real pager size.
There was hard-coded min value.
calculate min value base on aspect ratio for real.
@fix
Test Plan: pager -> begin move/resize -> make it small horizontally as much as possible -> check whether the guide is fit on real size.
Reviewers: raster, zmike
CC: seoz, cedric
Differential Revision: https://phab.enlightenment.org/D793
now that larger xinerama setups are getting more common, it's also the case that shm creation is more likely to fail due to SHMMAX defaults only working on displays smaller than than 8,388,609 total pixels. in this case, we print a helpful error message so the user can (optionally) increase SHMMAX
@bugfix: If we are going to be using ecore_x functions, we need to
include the Ecore_X header file
Signed-off-by: Chris Michael <cp.michael@samsung.com>
using e_bl_val here is wrong now since this needs to calculate against the starting and ending backlight values, neither of which are represented accurately by e_bl_val in some cases.
this fixes the gradually decaying backlight which occurs over repeated screen blanks
probably fixes T1152
this is the "real" backlight value, so it needs to always be accurate. since randr backlight sets this value elsewhere, only use those real updates to ensure genuine values
Summary: There are already in inner structure xkb in E_Wayland_Compositor.
Test Plan: Build e
Reviewers: raster, devilhorns, zmike
CC: cedric
Differential Revision: https://phab.enlightenment.org/D742
Summary:
Black area of override redirect window could send damage notify which has unwanted xy position.
(a) Skip x configure notify with 3,55 316x162 of override redirect win
(b) Handle x show notify: create a new client and x damage for override redirect win
(c) Handle x damage notify with 3,55 316x162
To resolve it, E discards unwanted xy position of first damage for override redirect window.
This fixes remained problem of T1180 and T1188.
Test Plan:
1. Run e with sw engine mode
2. Run pcmanfm
3. Select menu in pcmanfm
4. Check whether menu window has black area
Reviewers: raster, zmike, devilhorns
CC: cedric
Differential Revision: https://phab.enlightenment.org/D800
Summary:
xterm and pcmanfm windows shows black area if e is running with sw engine mode. (T1180)
In this case, there are two problems:
1. Unwanted geometry info of first damage by wrong window move in intercept_move.
(a) Handle x map request
(b) Initialize client_inset value of comp object according to geometry value of "e.swallow.client" part
(c) Set client_inset value to cw->client.x and y in intercept_move
(d) Call ecore_x_window_move_resize with wrong x and y at idler
(e) Create x damage
(f) Handle unwanted damage notify event which has position values same as client_inset.
(g) Copy image contents from pixmap according to wrong area info of damage notify and render it on screen.
2. Problem of override redirect window
Black area of pcmanfm's menu is related to override redirect window.
This patch only covers 1st problem not 2nd problem.
The override redirect window should be fixed by another way.
Test Plan:
1. Run e with sw engine mode or run x-ui.sh in e git simply
2. Run xterm which is using classic x drawing api
3. Check client window area of xterm
Reviewers: raster, zmike, devilhorns
CC: cedric
Differential Revision: https://phab.enlightenment.org/D795
Summary: e_comp is not an e module anymore.
Test Plan: N/A
Reviewers: raster, devilhorns, zmike
CC: cedric
Differential Revision: https://phab.enlightenment.org/D791
Summary:
E doen't have to remove pointer_image evas object when destroying wayland
surface. The image contents of pointer_image will be replaced default mouse
cursor in pointer_object at idler unless pointer_image is removed in
e_pointer_image_set.
Test Plan: run e with wayland only server -> run elementary test -> close elementary test
Reviewers: raster, devilhorns, zmike
CC: cedric
Differential Revision: https://phab.enlightenment.org/D776
Summary:
it fixes a bug that cursor is invisible when running a wayland client.
e_pointer_image_set function sets image data of p->pointer_image to
data of E_Pixmap. and then e_pointer_idler_before function changes
raw image data of p->pointer_image to p->pixels. we should enable blocks
to avoid it.
Test Plan: run enlightenment (wayland only) -> run efl app with wayland shm engine
Reviewers: raster, devilhorns, zmike
CC: cedric
Differential Revision: https://phab.enlightenment.org/D769
Instead of rolling our own we go with a known working UUID implementation
here. Dependency should be easy enough as more or less every Linux system
is shipping it anyway.
e_uuid_store provides an API to store various window/surface properties
in a mmapped shm memory object based on an assigned UUID. Its main purpose
will be to provide storage of these properties during session recovery when
E acts as a wayland compositor.
@feature
Summary:
text part of pager popup is updated every desktop change.
But, the text part name is mismatched with style in elementary.
Honestly, I've fixed in pager16 as well since it's same problem. obviously.
Unfortunately, I couldn't test pager16.. where the hell is it.
Fixes T1189
Test Plan: enlightement -> desktop change by using key input -> check whethere proper desktop name is shown on pager popup or not
Reviewers: raster, zmike
CC: seoz, cedric, maxerba
Maniphest Tasks: T1189
Differential Revision: https://phab.enlightenment.org/D780
Summary: after commit 36a4948085, video size was not proper size in preview. the commit was good refactoring. resize only when the video file is opened. but, the smart callback name was wrong. change smart callback name from "length_change" to "open_done"
Test Plan: enlightenment -> efm -> preview on video file -> check whether the video size is shown properly
Reviewers: raster, zmike
CC: seoz, cedric
Differential Revision: https://phab.enlightenment.org/D779