add to set transient_for at main_win
authorHyoyoung Chang <hyoyoung.chang@samsung.com>
Mon, 3 Jan 2011 06:46:04 +0000 (15:46 +0900)
committerHyoyoung Chang <hyoyoung.chang@samsung.com>
Mon, 3 Jan 2011 06:46:04 +0000 (15:46 +0900)
src/clipdrawer.c
src/scrcapture.c
src/xcnphandler.c
src/xcnphandler.h

index aeb9060..bf84534 100644 (file)
@@ -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);
        }
index 699a0e5..033376b 100644 (file)
@@ -13,7 +13,7 @@
 #include <utilX.h>
 
 #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;
index 128a595..911170d 100755 (executable)
@@ -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;
index 6fedb2b..1ba4c88 100755 (executable)
@@ -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);