e randr x - fix mouseto use new ecore x api to force screen bound limits

use ecore_x_root_screen_barriers_set() new in efl git, thus bumping to
1.23.99 as a requirement for e.
This commit is contained in:
Carsten Haitzler 2020-01-07 14:22:47 +00:00
parent 54afb369f8
commit 73e3911874
3 changed files with 62 additions and 49 deletions

2
TODO
View File

@ -1,4 +1,6 @@
TODO: TODO:
* pointer: bug: sometiems get sstuck in move/resize modfe if mouse
over move/resize area when desklock kicks in
* clipboard manager - monitor clipboard changes + history + select from it * clipboard manager - monitor clipboard changes + history + select from it
* scriptlets: stdin/out module that provides gui services to some * scriptlets: stdin/out module that provides gui services to some
back-end script or process where e just talks via stdin/out. back-end script or process where e just talks via stdin/out.

View File

@ -38,7 +38,7 @@ e_version_rev = '.'.join([ver, git_version])
release = 'dev-0.23.99' release = 'dev-0.23.99'
#### ####
efl_version = '>= 1.22.3' efl_version = '>= 1.23.99'
add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c') add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c')
dir_prefix = get_option('prefix') dir_prefix = get_option('prefix')

View File

@ -560,6 +560,10 @@ e_comp_x_randr_config_apply(void)
} }
if (numout) if (numout)
{ {
Ecore_X_Rectangle *scrs = alloca(crtcs_num * sizeof(Ecore_X_Rectangle));
int scrs_num;
scrs_num = 0;
// set up a crtc to drive each output (or not) // set up a crtc to drive each output (or not)
for (i = 0; i < crtcs_num; i++) for (i = 0; i < crtcs_num; i++)
{ {
@ -603,6 +607,11 @@ e_comp_x_randr_config_apply(void)
ecore_x_randr_primary_output_set(root, outconf[i]); ecore_x_randr_primary_output_set(root, outconf[i]);
top_priority = -1; top_priority = -1;
} }
scrs[scrs_num].x = screenconf[i]->config.geom.x;
scrs[scrs_num].y = screenconf[i]->config.geom.y;
scrs[scrs_num].width = screenconf[i]->config.geom.w;
scrs[scrs_num].height = screenconf[i]->config.geom.h;
scrs_num++;
} }
else else
{ {
@ -612,10 +621,12 @@ e_comp_x_randr_config_apply(void)
ECORE_X_RANDR_ORIENTATION_ROT_0); ECORE_X_RANDR_ORIENTATION_ROT_0);
} }
} }
ecore_x_root_screen_barriers_set(scrs, scrs_num);
} }
else else
{ {
printf("RRR: EERRRRRROOOORRRRRRR no outputs to configure!\n"); printf("RRR: EERRRRRROOOORRRRRRR no outputs to configure!\n");
ecore_x_root_screen_barriers_set(NULL, 0);
} }
} }
free(outputs); free(outputs);