When we include support (in the wayland compositor) for compiling with
EGL, the inclusion of the EGL headers cause a conflict with the
Status structure name in this module, so lets rename it.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
SUMMARY: Unify popup menu activation code to match other modules, and
utilize E_MENU_POP_DIRECTION_AUTO for shelves that are in various
positions. Also use the current evas mouse event coordinates and
gadget position to calculate menu popup position.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
When visible window was moved from invisible desktop to current desktop via ibar, the window was not shown.
Fixes T1336
Test Plan: open window on 0-0 (desktop) -> goto 1-0 -> move window to 1-0 by using ibar -> check whether window is shown or not
Reviewers: zmike, raster
CC: seoz, cedric
Maniphest Tasks: T1336
Differential Revision: https://phab.enlightenment.org/D1038
this is not the correct way to use this function, and tiling should probably never call it. this is a function for (slowly) repositioning every client on the currently visible desktop while trying not to overlap. on failure, which occurs when clients cannot be placed without overlapping, it moves clients to 0,0.
fix T1310 because there is no i in team
Summary: Fix what I believe to be misspellings of 'Manager' on lines 21 and 24.
Test Plan: Build Enlightenement...
Reviewers: raster, zmike
CC: cedric
Differential Revision: https://phab.enlightenment.org/D1003
Summary:
1. fix window profile change request with wrong x window id
2. refactoring desktop window profile codes to handle e_client_desk_set correctly
Test Plan:
1. enlightenment: Settings Panel -> Screen -> Virtual Desktops -> Check "Use desktop window profile" -> Apply
2. open an efl app on 1st desktop (0-0)
3. set a window remember on efl app window
4. go to 2nd desktop (1-0)
5. open an efl app again. it should be positioned on the previous desktop (0-0)
Reviewers: zmike, raster
CC: cedric
Differential Revision: https://phab.enlightenment.org/D926
This reverts commit 5f0506c790.
this commit makes no sense. if it prevents a crash, then there is a more serious bug elsewhere which should not be covered over by this bandaid.
this was a neat experiment, but apparently it's not going to be usable for a long time in anything outside efl/elm
This reverts commits f87b9900fa, a49cede790, 81038f8d02, 47cfb31752.
Summary:
it fixes crash when running wl client apps on e wayland server.
invalid comp object pointer value is returned by using eo_data_scope_get.
thus eo_isa should be added before eo_data_scope_get.
Test Plan:
1. run e wl server
2. run wl client terminlogy
3. run second wl client elementary_test
Reviewers: raster, devilhorns, zmike, stefan_schmidt
CC: cedric
Differential Revision: https://phab.enlightenment.org/D919
Was the wrong structure type which caused writing after the allocated
size and was generally bad and wrong.
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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