diff --git a/TODO b/TODO index ae4e8857f..e4ac6e490 100644 --- a/TODO +++ b/TODO @@ -8,6 +8,8 @@ Some of the things (in very short form) that need to be done to E17... BUGS / FIXES ------------------------------------------------------------------------------- +* BUG: k3b has minimization issues when burning cd's (it tries to unminimize + its window and this doesn't work) * BUG: openoffice 2 when ddisplaying a presentation with xinerama (multiple zones) weird things happen (the presentation doesnt display - it seemingly attaches to the 2nd zone, not the first), crashes have been reported too. diff --git a/src/bin/e_border.c b/src/bin/e_border.c index baf60cd72..3032716e3 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -199,7 +199,7 @@ e_border_shutdown(void) } EAPI E_Border * -e_border_new(E_Container *con, Ecore_X_Window win, int first_map) +e_border_new(E_Container *con, Ecore_X_Window win, int first_map, int internal) { E_Border *bd; Ecore_X_Window_Attributes *att; @@ -228,7 +228,7 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map) ecore_evas_title_set(bd->bg_ecore_evas, "Enlightenment Frame"); bd->client.shell_win = ecore_x_window_override_new(bd->win, 0, 0, 1, 1); ecore_x_window_container_manage(bd->client.shell_win); - ecore_x_window_client_manage(win); + if (!internal) ecore_x_window_client_manage(win); /* FIXME: Round trip. XCB */ /* fetch needed to avoid grabbing the server as window may vanish */ att = &bd->client.initial_attributes; @@ -1195,9 +1195,7 @@ e_border_focus_set(E_Border *bd, int focus, int set) if (bd->focused) { if (bd->internal) - { - e_grabinput_focus(bd->win, E_FOCUS_METHOD_PASSIVE); - } + e_grabinput_focus(bd->client.win, E_FOCUS_METHOD_PASSIVE); else { if ((!bd->client.icccm.accepts_focus) && diff --git a/src/bin/e_border.h b/src/bin/e_border.h index 16a599bde..68e39f349 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -487,7 +487,7 @@ struct _E_Event_Border_Icon_Change EAPI int e_border_init(void); EAPI int e_border_shutdown(void); -EAPI E_Border *e_border_new(E_Container *con, Ecore_X_Window win, int first_map); +EAPI E_Border *e_border_new(E_Container *con, Ecore_X_Window win, int first_map, int internal); EAPI void e_border_free(E_Border *bd); EAPI void e_border_ref(E_Border *bd); EAPI void e_border_unref(E_Border *bd); diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index e290dec41..e2ae9a2af 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -244,7 +244,7 @@ e_manager_manage_windows(E_Manager *man) deskxy[1]); { - bd = e_border_new(con, windows[i], 1); + bd = e_border_new(con, windows[i], 1, 0); if (bd) { /* FIXME: @@ -263,7 +263,7 @@ e_manager_manage_windows(E_Manager *man) E_Container *con; E_Border *bd; con = e_container_current_get(man); - bd = e_border_new(con, windows[i], 1); + bd = e_border_new(con, windows[i], 1, 0); if (bd) e_border_show(bd); } @@ -535,7 +535,7 @@ _e_manager_cb_window_show_request(void *data, int ev_type __UNUSED__, void *ev) con = e_container_current_get(man); if (!e_border_find_by_client_window(e->win)) { - bd = e_border_new(con, e->win, 0); + bd = e_border_new(con, e->win, 0, 0); if (!bd) ecore_x_window_show(e->win); } diff --git a/src/bin/e_win.c b/src/bin/e_win.c index 8ca0567f4..bd445e8ab 100644 --- a/src/bin/e_win.c +++ b/src/bin/e_win.c @@ -46,7 +46,7 @@ e_win_new(E_Container *con) win->engine = e_canvas_engine_decide(e_config->evas_engine_win); win->ecore_evas = e_canvas_new(e_config->evas_engine_win, con->manager->root, 0, 0, 1, 1, 1, 0, - &(win->evas_win), &(win->evas_sub_win)); + &(win->evas_win), NULL); e_canvas_add(win->ecore_evas); ecore_evas_data_set(win->ecore_evas, "E_Win", win); ecore_evas_callback_move_set(win->ecore_evas, _e_win_cb_move); @@ -83,11 +83,12 @@ e_win_show(E_Win *win) { _e_win_prop_update(win); ecore_evas_lower(win->ecore_evas); - win->border = e_border_new(win->container, win->evas_win, 1); + win->border = e_border_new(win->container, win->evas_win, 1, 1); if (!win->placed) win->border->re_manage = 0; win->border->internal = 1; win->border->internal_ecore_evas = win->ecore_evas; +/* if (win->engine == E_EVAS_ENGINE_GL_X11) { ecore_evas_gl_x11_extra_event_window_add(win->ecore_evas, win->border->win); @@ -103,6 +104,7 @@ e_win_show(E_Win *win) ecore_evas_software_x11_extra_event_window_add(win->ecore_evas, win->border->win); ecore_evas_software_x11_extra_event_window_add(win->ecore_evas, win->border->event_win); } + */ } _e_win_prop_update(win); e_border_show(win->border); diff --git a/src/bin/e_win.h b/src/bin/e_win.h index 4938d0803..11134624d 100644 --- a/src/bin/e_win.h +++ b/src/bin/e_win.h @@ -22,7 +22,6 @@ struct _E_Win Ecore_Evas *ecore_evas; Evas *evas; Ecore_X_Window evas_win; - Ecore_X_Window evas_sub_win; unsigned char placed : 1; int min_w, min_h, max_w, max_h, base_w, base_h; int step_x, step_y;