conf_randr: remember whether geometry has changed
authorSebastian Dransfeld <sd@tango.flipp.net>
Wed, 5 Mar 2014 11:29:35 +0000 (12:29 +0100)
committerSebastian Dransfeld <sd@tango.flipp.net>
Thu, 6 Mar 2014 14:18:14 +0000 (15:18 +0100)
src/modules/conf_randr/e_int_config_randr.c

index 58e8f83..e289644 100644 (file)
@@ -10,6 +10,7 @@ struct _E_Config_Dialog_Data
    Evas_Object *o_randr;
 
    int restore, primary;
+   Eina_Bool changed;
 };
 
 /* local function prototypes */
@@ -175,17 +176,17 @@ static int
 _basic_check(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
 {
    return ((e_randr_cfg->restore != cfdata->restore) || 
-           (e_randr_cfg->primary != (unsigned int)cfdata->primary));
+           (e_randr_cfg->primary != (unsigned int)cfdata->primary) ||
+           cfdata->changed);
 }
 
 static void 
 _randr_cb_changed(void *data, Evas_Object *obj, void *event EINA_UNUSED)
 {
    E_Config_Dialog *cfd;
-   Eina_Bool changed = EINA_FALSE;
 
    if (!(cfd = data)) return;
 
-   changed = e_smart_randr_changed_get(obj);
-   e_config_dialog_changed_set(cfd, changed);
+   cfd->cfdata->changed = e_smart_randr_changed_get(obj);
+   e_config_dialog_changed_set(cfd, cfd->cfdata->changed);
 }