]> git.0d.be Git - empathy.git/commitdiff
Copy topic selection manually since Ctrl-C is bound to the menu item.
authorVitaly Minko <vitaly.minko@gmail.com>
Thu, 28 Oct 2010 12:52:16 +0000 (16:52 +0400)
committerVitaly Minko <vitaly.minko@gmail.com>
Thu, 28 Oct 2010 12:52:16 +0000 (16:52 +0400)
libempathy-gtk/empathy-chat.c

index d6b9cf7887c82d0ea5855f35a270956a66731765..e946ae57face679d5ed0fdeea91d4b561b02f4b8 100644 (file)
@@ -3385,6 +3385,31 @@ empathy_chat_copy (EmpathyChat *chat)
 
                gtk_text_buffer_copy_clipboard (buffer, clipboard);
        }
+       else {
+               gint start_offset;
+               gint end_offset;
+               EmpathyChatPriv *priv = GET_PRIV (chat);
+
+               if (gtk_label_get_selection_bounds (GTK_LABEL (priv->label_topic),
+                                                              &start_offset,
+                                                              &end_offset)) {
+                       gchar *start;
+                       gchar *end;
+                       gchar *selection;
+                       const gchar *topic;
+                       GtkClipboard *clipboard;
+
+                       topic = gtk_label_get_text (GTK_LABEL (priv->label_topic));
+                       start = g_utf8_offset_to_pointer (topic, start_offset);
+                       end = g_utf8_offset_to_pointer (topic, end_offset);
+                       selection = g_strndup (start, end - start);
+
+                       clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
+                       gtk_clipboard_set_text (clipboard, selection, -1);
+
+                       g_free (selection);
+               }
+       }
 }
 
 void