Commit Graph

136 Commits

Author SHA1 Message Date
Carsten Haitzler 3b15f1bb8f e win - fix dead code
fi CID 1425219
2020-04-19 00:50:11 +01:00
Carsten Haitzler f9454fcb65 e win - remove logically dead code
fix CID 1425227
2020-04-19 00:32:51 +01:00
Carsten Haitzler 0f1e2862a6 e win - fix recursive symbol typo
amazing this didn't blow up before. missing e_ in front ad the macro
should have transformed this to wrap the e version of this func...
clang warning pointed this out. a real bug waiting to happen.

@fix
2020-01-15 19:06:24 +01:00
Carsten Haitzler a6cc86af44 e - stop trapping inlined windows - they shouldnt be 2020-01-03 17:44:37 +00:00
Mike Blumenkrantz 99db9e2557 more E_BITFIELD conversions 2017-11-08 09:22:24 -05:00
Mike Blumenkrantz 00c01d0ae6 use client frame for internal win geometry setting on show
calling these functions on the elm_win has no effect here
2017-08-25 14:47:10 -04:00
Mike Blumenkrantz 08d70dd958 clamp internal win min/max size hints to 0
ref T5845
2017-08-07 11:04:23 -04:00
Mike Blumenkrantz 0d85c2c5a1 rework internal win centering
call resize before attempting to center to ensure accurate positioning
2017-07-21 14:43:37 -04:00
Mike Blumenkrantz ef3260a799 only center internal windows once
these shouldn't re-center on every resize
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz 3ca416cc0a add wrappers for elm_win util create functions
avoid deadlocking in gl init by forcing sw
2017-03-17 15:08:29 -04:00
Mike Blumenkrantz 69936f74a5 set dialog and tooltip flags for internal clients
fixes handling of internal wl windows which are set as dialogs
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 7be2167013 handle window icons from elm for internal wins
fixes appearance of icons set with elm_win_icon_name_set()
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz c267535bfa unalias internal wl client pixmaps in elm win hide trap callback
this seems to be the best place to remove the alias since it is initially
added in the corresponding show callback
2016-11-08 12:49:24 -05:00
Derek Foreman ab5879b926 Fix wayland pixmap ids again
Wayland pixmap ids are a different data type for internal and
external windows.  cast them both to 64-bits so they're the same
size regardless of arch.

ref d3ba524a62
2016-06-28 15:43:45 -05:00
Mike Blumenkrantz d3ba524a62 use window id for internal window pixmaps again on wayland
this was breaking internal windows when more than one was open, and
especially if any were open which had a parent-child relationship, by
using the same id for all internal window pixmaps
2016-05-11 15:40:10 -04:00
Mike Blumenkrantz 7ce5f68b51 store (internal) elm win geometry when set prior to showing the win
this fixes the case where attempts to manipulate a window would fail
prior to showing the window
2016-03-18 13:53:28 -04:00
Derek Foreman a4fc286d7f Fix internal window borders on 32-bit computers
Our wayland window ids are 64 bit integers, we need to be careful
about the data type on 32-bit machines where pointers are smaller
than this.
2016-03-10 16:47:09 -05:00
Chris Michael 1b36f93956 Fix issue of using the wrong id when finding pixmap client
Previously, we were passing in the wl window id into the
pixmap_find_client function. This is improper as the e_pixmap_new
functions take the surface resource id. To solve this, we will get the
Ecore_Wl2_window from the Evas_Object, fetch the surface id from that,
then pass those into e_pixmap_find_client.

This resolves an issue where the everything module was not working
properly.

ref T3058

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-01-19 10:48:38 -05:00
Mike Blumenkrantz 14a6ac6458 unset E_Client->internal_elm_win before deleting the client in e_win
==24509== Invalid write of size 8
==24509==    at 0x502D00: _e_elm_win_trap_del (e_win.c:39)
==24509==    by 0x509BFC2: _elm_win_evas_object_smart_del (elm_win.c:1886)
==24509==    by 0x91F4643: evas_obj_smart_del (in /usr/lib/libevas.so.1.15.99)
==24509==    by 0x91F5B5C: evas_object_smart_del (evas_object_smart.c:1021)
==24509==    by 0x91E9107: _evas_object_eo_base_destructor (evas_object_main.c:739)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0x5086715: _elm_widget_eo_base_destructor (elm_widget.c:5744)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
==24509==    by 0x4D5B1A: _e_obj_dialog_free (e_obj_dialog.c:125)
==24509==    by 0x4D61FB: e_object_free (e_object.c:152)
==24509==    by 0x4D61FB: e_object_unref (e_object.c:152)
==24509==    by 0x4EDC54: _e_sys_logout_after (e_sys.c:750)
==24509==    by 0x4ED7AC: _e_sys_action_do (e_sys.c:925)
==24509==    by 0x4EE348: e_sys_action_raw_do (e_sys.c:311)
==24509==    by 0x4EE43F: _e_sys_comp_done_cb (e_sys.c:66)
==24509==    by 0x6097348: _edje_emit_cb (edje_program.c:1476)
==24509==    by 0x6097348: _edje_emit_handle (edje_program.c:1405)
==24509==    by 0x60924EE: _edje_message_queue_process (edje_message_queue.c:787)
==24509==    by 0x60926A6: _edje_job (edje_message_queue.c:154)
==24509==    by 0xCC5087A: _ecore_job_event_handler (ecore_job.c:121)
==24509==    by 0xCC4B204: _ecore_call_handler_cb (ecore_private.h:390)
==24509==    by 0xCC4B204: _ecore_event_call (ecore_events.c:565)
==24509==    by 0xCC52AE7: _ecore_main_loop_iterate_internal (ecore_main.c:1927)
==24509==    by 0xCC52CD6: ecore_main_loop_begin (ecore_main.c:983)
==24509==    by 0x4383F4: main (e_main.c:1047)
==24509==  Address 0x14fb1a28 is 1,176 bytes inside a block of size 1,352 free'd
==24509==    at 0x4C2A65B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24509==    by 0x4D61FB: e_object_free (e_object.c:152)
==24509==    by 0x4D61FB: e_object_unref (e_object.c:152)
==24509==    by 0x502CED: _e_elm_win_trap_del (e_win.c:37)
==24509==    by 0x509BFC2: _elm_win_evas_object_smart_del (elm_win.c:1886)
==24509==    by 0x91F4643: evas_obj_smart_del (in /usr/lib/libevas.so.1.15.99)
==24509==    by 0x91F5B5C: evas_object_smart_del (evas_object_smart.c:1021)
==24509==    by 0x91E9107: _evas_object_eo_base_destructor (evas_object_main.c:739)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0x5086715: _elm_widget_eo_base_destructor (elm_widget.c:5744)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
==24509==    by 0x4D5B1A: _e_obj_dialog_free (e_obj_dialog.c:125)
==24509==    by 0x4D61FB: e_object_free (e_object.c:152)
==24509==    by 0x4D61FB: e_object_unref (e_object.c:152)
==24509==    by 0x4EDC54: _e_sys_logout_after (e_sys.c:750)
==24509==    by 0x4ED7AC: _e_sys_action_do (e_sys.c:925)
==24509==    by 0x4EE348: e_sys_action_raw_do (e_sys.c:311)
==24509==    by 0x4EE43F: _e_sys_comp_done_cb (e_sys.c:66)
==24509==    by 0x6097348: _edje_emit_cb (edje_program.c:1476)
==24509==    by 0x6097348: _edje_emit_handle (edje_program.c:1405)
==24509==    by 0x60924EE: _edje_message_queue_process (edje_message_queue.c:787)
==24509==    by 0x60926A6: _edje_job (edje_message_queue.c:154)
==24509==    by 0xCC5087A: _ecore_job_event_handler (ecore_job.c:121)
==24509==    by 0xCC4B204: _ecore_call_handler_cb (ecore_private.h:390)
==24509==    by 0xCC4B204: _ecore_event_call (ecore_events.c:565)
==24509==    by 0xCC52AE7: _ecore_main_loop_iterate_internal (ecore_main.c:1927)
==24509==    by 0xCC52CD6: ecore_main_loop_begin (ecore_main.c:983)
==24509==    by 0x4383F4: main (e_main.c:1047)
2015-09-29 12:58:13 -04:00
Mike Blumenkrantz 8491e11570 always set alpha for internal wins
due to the presence of color classes on internal windows, e must
ensure that users who set translucent colors for window base objects
get transparency as expected on those parts of the window. it's impossible
to determine in advance whether alpha is needed, so it's best to just
set alpha in all cases

fix T2050
2015-09-21 15:16:30 -04:00
Mike Blumenkrantz 847d3fe358 reject internal window moves when they originate from a wl configure event
fixes a number of internal win positioning issues
2015-07-30 16:22:08 -04:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Chris Michael 93971bb6fc Fix T2385 : internal windows not showing resize cursor
If we are going to set the internal elm windows to borderless and
handle frames inside E, then we need to also unset any existing
pointer objects which may be on the wayland Ecore_Evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-04 12:40:06 -04:00
Mike Blumenkrantz e4298517dd add internal win trap to set override property on windows 2015-04-27 13:56:56 -04:00
Mike Blumenkrantz 59ea27e819 set internal win icccm name/class/title during win trap show
wl clients have no concept of icccm name, so this is the only way to set it

also, setting it here makes it available sooner for other functionalities
2015-04-27 13:55:47 -04:00
Mike Blumenkrantz 9c573a49ac fix internal win pixmap id int size in show trap 2015-04-23 12:35:22 -04:00
Mike Blumenkrantz 96f07bff8a wl client pixmaps now use a different method for creating the pixmap id 2015-04-21 15:19:20 -04:00
Derek Foreman 1fb1f17db0 Fix wayland compositor on 32 bit systems
Summary:
_e_elm_win_trap_show() treats Ecore_Window as a 64bit data type when
it's actually the same size as the system's pointer type.

 #24HourFullPowerNoToiletNoShower

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2388

fix T2194
2015-04-20 18:18:20 -04:00
Mike Blumenkrantz 471dcb24cb __UNUSED__ -> EINA_UNUSED
this has been bugging me forever. __UNUSED__ is no longer a valid macro here.
2015-03-18 18:09:09 -04:00
Mike Blumenkrantz 1736d1ecb9 e_client functions no longer require E_Comp param 2015-03-13 16:53:19 -04:00
Mike Blumenkrantz 08328f0c19 conditionally compile elm win trap wayland functionality 2015-03-12 14:28:18 -04:00
Mike Blumenkrantz a7dae25236 Revert "e - fix build when wayland not enabled"
This reverts commit 413ca8046e.

broke wayland runtime: wrong define names, wrong usage
2015-03-12 14:23:22 -04:00
Chris Michael 3dff7d4dad enlightenment: Fix 'type' may be used uninitialized message
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-07 11:18:45 -05:00
Carsten Haitzler 413ca8046e e - fix build when wayland not enabled 2015-02-07 12:30:19 +09:00
Mike Blumenkrantz 270bc92f81 add wl util function for calculating pixmap id 2015-02-06 18:32:07 -05:00
Carsten Haitzler 6ef73fb3f0 adapt to new win center trap in 1.13 efl
also require 1.13 now as we want he win trap h/v info
2015-02-06 11:37:52 +09:00
Mike Blumenkrantz d9fec13343 don't hide client before delete in win del trap 2015-02-01 19:05:21 -05:00
Mike Blumenkrantz 1680de7ff2 use new pixmap id for internal wl wins 2015-01-28 17:34:05 -05:00
Mike Blumenkrantz d94a76db15 preserve internal window borderless state when set prior to showing window 2015-01-23 16:22:14 -05:00
Mike Blumenkrantz 03c5915245 force server borders on internal wl wins again
this goes back to previous behavior before elm win conversion
2015-01-23 14:10:58 -05:00
Mike Blumenkrantz 665a399b14 de-e_comp_get()ify e_win 2015-01-23 14:10:58 -05:00
Mike Blumenkrantz 847ce5b0d5 never uncenter a centered internal window
a window which has received a call to elm_win_center() can now never auto-uncenter in either axis

ref T2031
2015-01-22 22:39:46 -05:00
Mike Blumenkrantz f8d846e0c9 set client frame geometry for new internal wins based on ee geometry 2015-01-20 19:20:07 -05:00
Mike Blumenkrantz f6fa99eb5f only set internal win name/class if not already set 2015-01-15 03:05:20 -05:00
Mike Blumenkrantz fc01bac0bf Revert "fix centering of elm wayland windows"
This reverts commit 1ec2a4e91c.

this may have fixed wayland window centering, but only because it effectively turns the function into a no-op instead of actually centering the window
2015-01-13 22:44:55 -05:00
Chris Michael 1ec2a4e91c fix centering of elm wayland windows
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-12 13:36:58 -05:00
Mike Blumenkrantz 915d3089ea unwrap INLINE_IMAGE window creation 2015-01-10 00:58:49 -05:00
Mike Blumenkrantz 922af2c52f remove e_comp_list(), deprecate all related functions for pending removal
there is only one E_Comp which can now be accessed by the e_comp global.

if you're editing a file with some uses of these deprecated functions, replace their usages with appropriate references to this variable

pass -Wno-deprecated-declarations to ignore these warnings during build
2015-01-05 15:39:15 -05:00
Mike Blumenkrantz 521a7f071e use frame geometry in win resize trap to get accurate sizes
ref T1905
2014-12-30 17:00:23 -05:00
Mike Blumenkrantz f3f3cedd03 only use elm win title for internal windows if it has been set 2014-12-14 15:40:25 -05:00