process_view: Keep new windows close.

On larger displays the process view can be a long way from the
main window when created. It's SUPER annoying. This will keep
them close enough for now.
This commit is contained in:
Alastair Poole 2020-06-21 16:54:10 +01:00
parent e66cb85e64
commit 700a21573d
4 changed files with 12 additions and 4 deletions

View File

@ -899,7 +899,7 @@ _item_pid_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
if (!proc) return;
ui->selected_pid = proc->pid;
ui_process_win_add(proc->pid, proc->command);
ui_process_win_add(ui->win, proc->pid, proc->command);
}
static void

View File

@ -1014,9 +1014,10 @@ _win_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
}
void
ui_process_win_add(int pid, const char *cmd)
ui_process_win_add(Evas_Object *parent_win, int pid, const char *cmd)
{
Evas_Object *win, *ic, *box, *tabs;
Evas_Coord x, y, w, h;
Ui_Process *ui = calloc(1, sizeof(Ui_Process));
ui->selected_pid = pid;
@ -1057,7 +1058,13 @@ ui_process_win_add(int pid, const char *cmd)
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, ui);
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE,
_win_resize_cb, ui);
elm_win_center(win, EINA_TRUE, EINA_TRUE);
evas_object_geometry_get(parent_win, &x, &y, &w, &h);
if (x > 0 && y > 0)
evas_object_move(win, x + 20, y + 10);
else
elm_win_center(win, EINA_TRUE, EINA_TRUE);
evas_object_show(win);
ui->cache = evisum_ui_item_cache_new(ui->genlist_threads, _item_create, 10);

View File

@ -62,6 +62,6 @@ typedef struct _Ui_Process {
} Ui_Process;
void
ui_process_win_add(int pid, const char *cmd);
ui_process_win_add(Evas_Object *parent_win, int pid, const char *cmd);
#endif

View File

@ -21,6 +21,7 @@ evisum_icon_path_get(const char *name);
int
evisum_ui_textblock_font_size_get(Evas_Object *tb);
void
evisum_ui_textblock_font_size_set(Evas_Object *tb, int new_size);