raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=a9a877fecab75cf1db582f7e5ddd2bec43e09ad4

commit a9a877fecab75cf1db582f7e5ddd2bec43e09ad4
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Tue Nov 10 11:17:59 2020 +0000

    wl x11 - if managed stop randr from doing its thing as it conflicts
    
    randr goes and resizes the e window to mach screen setup - wrong if
    managed., so if managed call the new stop which shuts down randr
    
    @fix
---
 src/bin/e_randr2.c              | 10 ++++++++++
 src/bin/e_randr2.h              |  4 +++-
 src/modules/wl_x11/e_mod_main.c |  1 +
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_randr2.c b/src/bin/e_randr2.c
index 1df08cd2b..8145cbffb 100644
--- a/src/bin/e_randr2.c
+++ b/src/bin/e_randr2.c
@@ -34,6 +34,7 @@ static Eina_List     *_ev_handlers = NULL;
 static Ecore_Timer   *_screen_delay_timer = NULL;
 static Eina_Bool      event_screen = EINA_FALSE;
 static Eina_Bool      event_ignore = EINA_FALSE;
+static Eina_Bool      initted = EINA_FALSE;
 
 /////////////////////////////////////////////////////////////////////////
 E_API E_Config_Randr2 *e_randr2_cfg = NULL;
@@ -55,6 +56,7 @@ e_randr2_init(void)
 
    if (!E_EVENT_RANDR_CHANGE) E_EVENT_RANDR_CHANGE = ecore_event_type_new();
    if ((!e_comp->screen) || (!e_comp->screen->available) || 
(!e_comp->screen->available())) return EINA_FALSE;
+   initted = EINA_TRUE;
    // create data descriptors for config storage
    _e_randr2_cfg_screen_edd =
      E_CONFIG_DD_NEW("E_Config_Randr2_Screen", E_Config_Randr2_Screen);
@@ -123,6 +125,8 @@ e_randr2_init(void)
 EINTERN int
 e_randr2_shutdown(void)
 {
+   if (!initted) return 0;
+   initted = EINA_FALSE;
    _animated_apply_abort();
    // nuke any screen config delay handler
    if (_screen_delay_timer) ecore_timer_del(_screen_delay_timer);
@@ -143,6 +147,12 @@ e_randr2_shutdown(void)
    return 1;
 }
 
+E_API void
+e_randr2_stop(void)
+{
+   e_randr2_shutdown();
+}
+
 E_API Eina_Bool
 e_randr2_config_save(void)
 {
diff --git a/src/bin/e_randr2.h b/src/bin/e_randr2.h
index 2c44a205f..5f9f0b371 100644
--- a/src/bin/e_randr2.h
+++ b/src/bin/e_randr2.h
@@ -132,6 +132,8 @@ extern E_API int              E_EVENT_RANDR_CHANGE;
 EINTERN Eina_Bool             e_randr2_init(void);
 EINTERN int                   e_randr2_shutdown(void);
 
+E_API    void                 e_randr2_stop(void);
+
 E_API    Eina_Bool            e_randr2_config_save(void);
 E_API    void                 e_randr2_config_apply(void);
 E_API    void                 e_randr2_screeninfo_update(void);
@@ -141,6 +143,6 @@ E_API E_Config_Randr2_Screen 
*e_randr2_config_screen_find(E_Randr2_Screen *s, E_
 E_API void                    e_randr2_screens_setup(int rw, int rh);
 E_API E_Randr2_Screen        *e_randr2_screen_id_find(const char *id);
 E_API double                  e_randr2_screen_dpi_get(E_Randr2_Screen *s);
-E_API void                     e_randr2_screen_modes_sort(E_Randr2_Screen *s);
+E_API void                    e_randr2_screen_modes_sort(E_Randr2_Screen *s);
 #endif
 #endif
diff --git a/src/modules/wl_x11/e_mod_main.c b/src/modules/wl_x11/e_mod_main.c
index 277ff9d40..a22ff5121 100644
--- a/src/modules/wl_x11/e_mod_main.c
+++ b/src/modules/wl_x11/e_mod_main.c
@@ -66,6 +66,7 @@ e_modapi_init(E_Module *m)
 
    e_comp_wl->dmabuf_disable = EINA_TRUE;
 
+   if (managed) e_randr2_stop();
    return m;
 }
 

-- 


Reply via email to