NB: Each different build (x11/wl-only) had various unused variables.
This is a squash of the commits to fix all that.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Move parent->modal setting from the shell module to the compositor.
Support setting of various window types (dialogs, menus, etc).
Handle setting of internal properties (min size, max size, etc).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
client->parent->modal code to the compositor side.
Also, after setting netwm.type, change the set_win_type in the
compositor data field so that the compositor will handle parent->modal
on next property fetch.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Don't try to ping clients that we are forceably killing.
Implement e_grabinput calls during focus_set.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Ungrab mouse & wheel bindings when we delete the client.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
remove client stacking code (apparently handled in e_client already)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: When the client resized, it need to resize tilers for surface region also.
Reviewers: devilhorns, zmike, raster, gwanglim
CC: cedric
Differential Revision: https://phab.enlightenment.org/D1020
Summary: add support for xdg_shell surface transient_for
Test Plan:
1. run e wayland server
2. run weston-stacking and set focus it
3. press 't' for creating transient_for surface
Reviewers: devilhorns, zmike, raster
CC: cedric
Differential Revision: https://phab.enlightenment.org/D1016
@feature
Summary: E_Comp_Wl_Buffer's busy value should be updated after initialization as zero.
Reviewers: devilhorns, zmike, raster
Reviewed By: devilhorns
CC: cedric
Differential Revision: https://phab.enlightenment.org/D1011
Summary:
since the data as a key of hash is 64bit integers, clients_win_hash should be created to int64.
if not, loss of data can occur when add or delete data from hash table.
Test Plan:
(1) run any application. (added ec to hash table)
(2) close the application. (try to delete ec from hash table, but couldn't)
(3) after that, if _e_comp_wl_cb_render_post is called, since refer to ec which was already freed, enlightenment had been crashed.
Reviewers: devilhorns, zmike, raster
CC: cedric
Differential Revision: https://phab.enlightenment.org/D1006
Summary:
there are no geometry restore codes in handler of
wl_shell_surface toplevel_set.
Test Plan:
1. run e wayland only server with devilhons's branch source (devs/devilhorns/e_comp_wl)
2. run terminology
3. make terminlogy surface to be maximized
4. make terminlogy surface to be un-maximized
5. move terminlogy surface
Reviewers: devilhorns, zmike, raster, stefan_schmidt
CC: cedric
Differential Revision: https://phab.enlightenment.org/D965
Add code to hold references to 'buffers'.
- Release 'buffers' After they have been rendered by the compositor.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: fullscreen_set handler for wl_shell_surface
Test Plan:
1. run e wayland only server with devilhons's branch source (devs/devilhorns/e_comp_wl)
2. run elementary_test -to "window states"
3. select fullscreen check box on elementary_test surface
Reviewers: devilhorns, zmike, raster, stefan_schmidt
Reviewed By: devilhorns
CC: cedric
Differential Revision: https://phab.enlightenment.org/D966
remove memcpy of wl_buffer data.
NB: This Is REALLY not needed in ANY compositor !!!
NB: This DOES cause lots of current Failures within the existing X Compositor ... ie: Wayland Clients inside X do NOT work at this point :(
Signed-off-by: Chris Michael <cp.michael@samsung.com>
- post a wl_buffer release After rendering is completed.
- change code to follow compositor structure name
- when creating compositor (inside X), set input keymap
- don't set "reparent" for all new clients
Signed-off-by: Chris Michael <cp.michael@samsung.com>
update compositor structure for ability to run X and Wayland Clients.
update wayland compositor data & input file(s) for data structure rename.
NB: Both the X compositor and the Wayland compositor have different
"client data" to store, so e_client structure needs different fields
Signed-off-by: Chris Michael <cp.michael@samsung.com>
- reduce variable usage for non-x
- remove need to memcpy wayland buffer image data
- add function for setting pixmap buffer resource
- add shm_buffer access calls around getting wl_buffer data
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Additional authors: zmike
* if unplaced, place centered on transient-for on initial placement
rather that screen centered
* if transient.move and transient.resize options follow options are on
make transients floow as intended
This fixes ticket T1526 - Selecting no input method would still allow
the configure button to be pressed, and items selected from the
language list.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Due to stupid_obj_del_workaround_hack, sound comes out during 3sec
even if media has been disappeared. Although the 3sec workaround should be gone,
pause media on close to fix the side effect.
Tiling wasn't being applied when enabling it with a new config because
we were comparing with the old config instead of just always applying.
This fixes T974.
Since icon/video will be drawn into livethumb's image canvas,
icon/video would be deleted on livethumb's deletion.
Therefore, don't register icon/video as comp object's del list.(duplicated deletion)
"frame_decode" callback shouldn't be invoked multiple time.
Summary:
There were a few crash cases during drag and drop.
- move file in Desktop using efm,
- move file in same directory using differnt efm
The root cause is icon finding logic. efm finds icons based on URI string.
But, the found icon could be different with selected one since there could be multiple efm in same directory.
Therefore, this patch filter out icon which is not selected icon.
Fixes T1364
Test Plan:
case 1. open efm -> goto desktop -> move file from ~/Desktop to ~/Desktop/folder
case 2. open two efm -> goto same directory in two efm -> move file to {currentdirectory}/folder in any efm
Reviewers: raster, zmike
Subscribers: cedric, seoz
Maniphest Tasks: T1364
Differential Revision: https://phab.enlightenment.org/D1331
Summary:
add check new_gcc into the gadman's gadget add handler to prevent invalid ref_count increase
while moving between two zones. and also add object clean code for new_gcc and drag_gcc
when gadget is dropped.
Fixes T722
Test Plan:
1. create clock module on gadcon desktop (settings->gadgets, select "background" under layers, click "configure layer" and add a clock gadget).
2. drag clock gadget from one screen to the other. drop it there.
3. drag clock back to first screen
4. right click on clock and select "clock->remove".
Reviewers: raster, devilhorns, zmike
Subscribers: cedric
Maniphest Tasks: T722
Differential Revision: https://phab.enlightenment.org/D1256
this has been just way too confusing. i her user problems all the time
and they just cant see differences between connman module+gadget and
python econnman app.
we do need to have these settings in e in the end anyway... but until
then - disable
this dialog had a singl option in it - use shaped windows... and we
don't even use it anymore. remove the dialog to avoid confusion and
set use shaeped window to 0 - maybe config val could go entirely?
this addresses a vbox gl asccel issue where gl client apps can cause
al of vbox to crash and users find it unexpected that e is set to
software compositing but apps go and use opengl, so it's more
consistent for users
this will mean all users upgrading from e18 to e19 get the new preview
pager. thoose wanting the older plain pager can switch ti pager_plain.
anyon using git will find pager16 remove (or if still installed not
updated) so switch back to pager from pager16. :)
Summary:
pager16 is not properly resized when it is a desktop gadget.
Case 1. In move/resize mode, shrink is impossible since all items' min has been set by setting table options on resizing.
-> Do not set table options in _pager_resize().
Case 2. After log-in, if we open new window, pager has been get into move/resize mode.
frame resize was ignored, since it's invoked in the middle of resizing.
The detail is:
1) gadcon's frame is resizing
2) the table is resized
3) _pager_resize() -> e_gadcon_client_aspect_set() -> _gadman_gadget_size_hints_cb() -> try to resize frame
4) since frame is in the middle of resizing, the resize request has been ignored. (at start, since the initial size was 0, 0, pager get into move/resize mode)
-> Defer aspect setting.
fixes T1012
Test Plan:
Caes 1. try to shrink pager16 gadget on desktop
Case 2. open any window after log-in -> check whether the pager has been getting into move/resize mode and shrink
Reviewers: zmike
Subscribers: cedric, seoz
Maniphest Tasks: T1012
Differential Revision: https://phab.enlightenment.org/D1242
this fixes T1441 - or tries.. since it's not easily reproduced, this
is a try and understanding the problem and being conservative by
refcounting until the data is no longer needed. combined with its
needed new api's from 356d10fbeefd3f79f3cc848ed266d33e04ac7238 i hope
this works.
Summary:
There was no checking about absolute path of symbolic link
In case of symbolic link, use real link (absolute path) and set sd->dev as "/"
Fixes T1365
Reviewers: raster, zmike
CC: seoz, cedric
Maniphest Tasks: T1365
Differential Revision: https://phab.enlightenment.org/D1147
i know it's not that pretty, but this brings back the
E_CLIENT_HOOK_CANVAS_LAYOUT as there just is no viable replacement and
thus breaks 2 modules. this fixes T1402 - we chances are just that
this needs a separate hook point as it isnt a per-client but a
per-comp hook.
Summary: add the padding to the if clause
Test Plan: Set a padding and press WIN+Arrow keys
Reviewers: tasn
Reviewed By: tasn
CC: cedric
Differential Revision: https://phab.enlightenment.org/D1117
Summary:
jpeg image which has EXIF orientation meta data was not rotated properly in fm or preview.
@fix
Test Plan:
1. get in "efl/src/tests/evas/images/ in fm.
2. check whether Light_exif_*.jpg are properly rotated or not.
Reviewers: raster, zmike
CC: seoz, cedric
Differential Revision: https://phab.enlightenment.org/D1109
so e is using eo... and something in eo changes... and e fails to
compile entirely.... there are hacks to use eo... and this is not good.
eo is still in a beta state. that means any usage of it can (and
will) break. this is a problem for e. if e uses eo, then eo breaks in
an efl upgrade, e breaks. we can't really have that. we already hit
this problem in terminology with the app server code in elm. so let's
just not use eo in e until it's stable.
this removes eo usage in all places, with the e_menu code having a
small isedje() func due to some of its code paths doing special things
based on if the obj is an edje one or not as opposed to just a simple
"only emit if its an edje obj".
before trying to get list data from it.
NB: Safeguards added to stop crashes from happening during a
mouse_wheel (reported from Guy Martin).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
NB: When running wayland clients under X11, we need to subtract 8 from
the keycode value to reflect X's broken keyboard rules
Signed-off-by: Chris Michael <cp.michael@samsung.com>
E master
fix crash and memory leak when press and release any key repeatedly.
Summary:
since the size of wl_array is determined based on one byte,
so in order to compare with uint32_t, the size of wl_array should
be divided by uint32_t's size.
and when calculate the size of wl_array by difference between two
address, address should type cast char* as one byte.
Test Plan:
(1) run terminology
(2) input any key several time.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
If EGL returns No Vendor, don't blacklist it. Only blacklist the Known
to be Broken NVIDIA driver
Signed-off-by: Chris Michael <cp.michael@samsung.com>
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>
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>