From 6a4fa85bd9ec2ef702f9b4c3447e1ce5ebab6359 Mon Sep 17 00:00:00 2001 From: Hyoyoung Chang Date: Mon, 3 Jan 2011 15:46:04 +0900 Subject: [PATCH] add to set transient_for at main_win --- src/clipdrawer.c | 4 +++- src/scrcapture.c | 4 ++-- src/xcnphandler.c | 26 ++++++++++++++++++++++++++ src/xcnphandler.h | 3 +++ 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/clipdrawer.c b/src/clipdrawer.c index aeb9060..bf84534 100644 --- a/src/clipdrawer.c +++ b/src/clipdrawer.c @@ -515,7 +515,7 @@ int clipdrawer_create_view(void *data) // for debug // at starting, showing app view - clipdrawer_activate_view(ad); + // clipdrawer_activate_view(ad); return 0; } @@ -526,6 +526,7 @@ void clipdrawer_activate_view(void *data) if (ad->win_main) { + set_transient_for(ad); evas_object_show(ad->win_main); elm_win_activate(ad->win_main); } @@ -537,6 +538,7 @@ void clipdrawer_lower_view(void *data) if (ad->win_main) { + unset_transient_for(ad); evas_object_hide(ad->win_main); elm_win_lower(ad->win_main); } diff --git a/src/scrcapture.c b/src/scrcapture.c index 699a0e5..033376b 100644 --- a/src/scrcapture.c +++ b/src/scrcapture.c @@ -13,7 +13,7 @@ #include #define IMAGE_SAVE_DIR "/opt/media/Images and videos/My photo clips" -#define IMAGE_SAVE_FILE_TYPE ".jpg" +#define IMAGE_SAVE_FILE_TYPE ".png" #define CAPTURE_SOUND_FILE "/usr/share/cbhm/sounds/14_screen_capture.wav" #define CAPTURE_SOUND_TIMEOUT_SEC 2 @@ -117,7 +117,7 @@ static Eina_Bool _scrcapture_capture_postprocess(void* data) DTIME("start capture postprocess - %s\n", capimginfo->filename); - if (!evas_object_image_save(capimginfo->eo, capimginfo->filename, NULL, NULL)) + if (!evas_object_image_save(capimginfo->eo, capimginfo->filename, NULL, "compress=1")) { DTRACE("screen capture save fail\n"); g_shot = EINA_FALSE; diff --git a/src/xcnphandler.c b/src/xcnphandler.c index 128a595..911170d 100755 --- a/src/xcnphandler.c +++ b/src/xcnphandler.c @@ -609,6 +609,32 @@ static int _xfocus_out_cb(void *data, int ev_type, void *event) return TRUE; } +void set_transient_for(void *data) +{ + struct appdata *ad = data; + + Ecore_X_Window xwin_active = None; + Atom atomActive = XInternAtom(g_disp, "_NET_ACTIVE_WINDOW", False); + + if (ecore_x_window_prop_window_get(DefaultRootWindow(g_disp), + atomActive, &xwin_active, 1) != -1) + { + ecore_x_icccm_transient_for_set (elm_win_xwindow_get(ad->win_main), xwin_active); + DTRACE("Success to set transient_for active window = 0x%X\n", xwin_active); + } + else + { + DTRACE("Failed to find active window for transient_for\n"); + } +} + +void unset_transient_for(void *data) +{ + struct appdata *ad = data; + + ecore_x_icccm_transient_for_unset(elm_win_xwindow_get(ad->win_main)); +} + static Ecore_X_Window get_selection_secondary_target_win() { Atom actual_type; diff --git a/src/xcnphandler.h b/src/xcnphandler.h index 6fedb2b..1ba4c88 100755 --- a/src/xcnphandler.h +++ b/src/xcnphandler.h @@ -28,6 +28,9 @@ int set_selection_owner(); int get_selection_content(void *data); int processing_selection_request(Ecore_X_Event_Selection_Request *ev); +void set_transient_for(void *data); +void unset_transient_for(void *data); + static int _cbhm_init(void *data); static void _cbhm_fini(); static int _xsel_clear_cb(void *data, int ev_type, void *event); -- 2.7.4