[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Texmacs-dev] Patch: Qt mouse copy-on-select
From: |
Norbert Nemec |
Subject: |
[Texmacs-dev] Patch: Qt mouse copy-on-select |
Date: |
Tue, 13 Oct 2009 21:27:23 +0100 |
User-agent: |
Thunderbird 2.0.0.23 (X11/20090817) |
Hi there,
attached is a patch that fixes the Qt mouse selection mechanism. The
member variable "selection" is also removed as it is unnecessary.
(Btw: I checked for the problem that Joris encountered in the X11 code
where clear_selection was always called right after set_selection if the
application had been the owner already. Does not seem to be a problem in
the Qt code. For me, the code works perfectly as it is now.)
Greetings,
Norbert
>From b9a673eac0bbb75e31ef3213ddbd0b5e8bf3c69e Mon Sep 17 00:00:00 2001
From: Norbert Nemec <address@hidden>
Date: Tue, 13 Oct 2009 21:22:08 +0100
Subject: [PATCH] Fix Qt mouse selection.
---
src/src/Plugins/Qt/qt_gui.cpp | 29 +++++++++++++----------------
src/src/Plugins/Qt/qt_gui.hpp | 1 -
2 files changed, 13 insertions(+), 17 deletions(-)
mode change 100644 => 100755 src/plugins/asymptote/bin/perl-tm_asy
diff --git a/src/plugins/asymptote/bin/perl-tm_asy
b/src/plugins/asymptote/bin/perl-tm_asy
old mode 100644
new mode 100755
diff --git a/src/src/Plugins/Qt/qt_gui.cpp b/src/src/Plugins/Qt/qt_gui.cpp
index 15b3ff0..0446e74 100755
--- a/src/src/Plugins/Qt/qt_gui.cpp
+++ b/src/src/Plugins/Qt/qt_gui.cpp
@@ -42,7 +42,7 @@ int timeout_time;
******************************************************************************/
qt_gui_rep::qt_gui_rep(int &argc, char **argv):
- interrupted (false), selection (NULL)
+ interrupted (false)
{
(void) argc; (void) argv;
// argc= argc2;
@@ -146,19 +146,21 @@ bool
qt_gui_rep::set_selection (string key, tree t, string s) {
selection_t (key)= copy (t);
selection_s (key)= copy (s);
- if (key == "primary") {
- //if (is_nil (windows_l)) return false;
- //Window win= windows_l->item;
- if (selection != NULL) tm_delete_array (selection);
- //XSetSelectionOwner (dpy, XA_PRIMARY, win, CurrentTime);
- //if (XGetSelectionOwner(dpy, XA_PRIMARY)==None) return false;
- selection= as_charp (s);
- QClipboard *clipboard = QApplication::clipboard();
- QString originalText = clipboard->text();
- clipboard->setText(selection);
+ QClipboard *cb = QApplication::clipboard();
+ QClipboard::Mode mode;
+ if (key == "primary") {
+ mode= QClipboard::Clipboard;
+ } else if (key == "mouse" && cb->supportsSelection()) {
+ mode= QClipboard::Selection;
+ } else {
+ return true;
}
+
+ char *selection = as_charp (s);
+ cb->setText(selection,mode);
+ tm_delete_array (selection);
return true;
}
@@ -166,11 +168,6 @@ void
qt_gui_rep::clear_selection (string key) {
selection_t->reset (key);
selection_s->reset (key);
- if ((key == "primary") && (selection != NULL)) {
- tm_delete_array (selection);
- // FIXME: should we do something with the pasteboard?
- selection= NULL;
- }
}
/******************************************************************************
diff --git a/src/src/Plugins/Qt/qt_gui.hpp b/src/src/Plugins/Qt/qt_gui.hpp
index e0bb219..796be09 100755
--- a/src/src/Plugins/Qt/qt_gui.hpp
+++ b/src/src/Plugins/Qt/qt_gui.hpp
@@ -39,7 +39,6 @@ public:
QTMGuiHelper *gui_helper;
QTimer *updatetimer;
- char* selection;
hashmap<string,tree> selection_t;
hashmap<string,string> selection_s;
--
1.6.3.3
- [Texmacs-dev] Patch: Qt mouse copy-on-select,
Norbert Nemec <=