Georg Baum [Sun, 7 Jan 2007 14:44:44 +0000 (14:44 +0000)]
Tell X the selection status also after it is changed by the keyboard, since
we got a consensus on this on the list.
Some calls of haveSelection are still missing, but we need to decide the
"persistent selection" question before those can be implemented properly.
* src/frontends/qt4/QCharacter.C:
* src/frontends/qt4/QDocumentDialog.C:
* src/frontends/qt4/QPrefsDialog.C:
- include some information on the resizing bug,
Georg Baum [Sat, 6 Jan 2007 15:33:07 +0000 (15:33 +0000)]
Fix thinko: default paste method for plain text
* src/lyxtext.h
* src/text3.C
(pasteString): Change argument to bool
* src/text3.C
(LyXText::dispatch): (LFUN_PASTE): Paste plain text as paragraphs,
not as lines
(LyXText::dispatch): Adjust to pasteString change
* lib/bind/cua.bind:
* lib/bind/sciword.bind:
* lib/bind/mac.bind: Move shortcuts from "clipboard-paste paragraph"
and "primary-selection-paste paragraph" to "primary-selection-paste"
and "clipboard-paste", since the "paragaph" versions are used in
LFUN_PASTE and middle-mouse-button paste. Now "primary-selection-paste"
has the same shortcut it always had, and "clipboard-paste" has the
shortcut that was originally assigned to
"primary-selection-paste paragraph".
Michael Schmitt [Sat, 6 Jan 2007 13:56:58 +0000 (13:56 +0000)]
* lib/bind/cua.bind:
* lib/bind/mac.bind:
* lib/bind/sciword.bind: move the shortcut C-M-v from "primary-selection-paste" to "clipboard-paste paragraph"
Michael Schmitt [Sat, 6 Jan 2007 13:42:15 +0000 (13:42 +0000)]
* lib/ui/stdmenus.inc:
* lib/ui/stdmenus.ui: rename file in order not to confuse users
* lib/ui/stdtoolbars.inc:
* lib/ui/stdtoolbars.ui: rename file in order not to confuse users
Georg Baum [Sat, 6 Jan 2007 10:08:48 +0000 (10:08 +0000)]
fix compile error:
../../../src/mathed/../ParagraphMetrics.h:76: error: extra qualification 'lyx::ParagraphMetrics::' on member 'calculateRowSignature'
This commit fixes the singlePar optimization which was disabled due to the ParagraphMetrics cleanup.
* rowpainter.C::paintPar(): don't calculate row signature here. Use ParagraphMetrics::rowChangeStatus() instead.
* RowList_fwd.h: RowSignature is now a vector.
* ParagraphMetrics
- rowChangeStatus(), updateRowChangeStatus(), calculateRowSignature(): new methods.
- row_signature_: new member
- rowSignature_: renamed to row_signature_
Georg Baum [Fri, 5 Jan 2007 14:40:49 +0000 (14:40 +0000)]
Fix and document middle mouse button paste. This is probably the last of
the status quo fixes, I'll send a proposal how to proceed soon.
* src/CutAndPaste.[Ch]
(copySelection): Split into copySelection and copySelectionToStack
* src/text3.C
(LyXText::dispatch): Use copySelectionToStack instead of LFUN_COPY
to copy the selection to the cut buffer for two reasons:
- LFUN_COPY did not work (probably because bv.cursor() was not yet set)
- If it would work it would put the selection to the system clipboard
which is clearly wrong.
Document why we put the selection to the stack.
Georg Baum [Fri, 5 Jan 2007 13:31:37 +0000 (13:31 +0000)]
The uncontroversal part of the selection fix: Always set the X selection
after selecting something with the mouse
* src/insets/insettabular.C
(InsetTabular::doDispatch): Set the X selection if there is a
selection after release of the left mouse button
* src/mathed/InsetMathNest.C
(InsetMathNest::doDispatch): Set the X selection after double and
triple click of the left mouse button
(InsetMathNest::lfunMouseRelease): Set the X selection if there is a
selection after release of the left mouse button
Georg Baum [Fri, 5 Jan 2007 10:32:07 +0000 (10:32 +0000)]
* src/frontends/qt4/GuiSelection.C
(GuiSelection::haveSelection): Add a big comment what we actually do
here, and why. It took me quite some time to figure that out.
* src/frontends/Selection.h
(haveSelection): Add more detailed documentation
Georg Baum [Fri, 5 Jan 2007 10:11:21 +0000 (10:11 +0000)]
Fix another selection bug
* src/frontends/qt4/GuiApplication.C
(GuiApplication::x11EventFilter): Only send or clear the selection
if the X event specified the primary selection. Previously this was
also done if the event specified the clipboard. We must ignore that,
because the clipboard is completele handled by qt.
* src/frontends/LyXKeySym.h:
* src/frontends/qt4/QLyXKeySym.h:
* src/frontends/qt4/QLyXKeySym.C (print): add a forgui boolean that
tells whether the string should used localized names and special
characters.
* src/frontends/qt4/QLPopupMenu.C (addBinding): use a non-localaized
binding for Qt/Mac (because it needs to be parsed back) and a
localized one for the others (so that it looks good).
* src/kbmap.C (defkey,printbindings):
* src/lyxfunc.C (processKeySym,dispatch,viewStatusMessage): adapt to
above changes.
Reorganize window resizing so that no painting occurs during a resizeEvent(). This caused the crash on MacOSX because the splash image drawing was not finished before the resizeEvent() occurred because of scrollbar hiding.
* GuiWorkArea:
- need_resize_: new private member.
- expose(): move pixmap painting code to new private updateScreen() method.
- paintEvent(): resize the backing pixmap if need be.
- resizeEvent(): move the resizing code to paintEvent().
Georg Baum [Thu, 4 Jan 2007 12:05:24 +0000 (12:05 +0000)]
Let LFUN_PASTE always paste the most recent clipboard (internal or system)
* src/insets/insettabular.C
(InsetTabular::doDispatch): Only paste the tabular clipboard if the
system clipboard is not newer, else let the current cell paste the
system clipboard
(InsetTabular::getStatus): Only decide whether to enable LFUN_PASTE
if the tabular clipboard is not empty and the system clipboard is
not newer, else let the current cell decide.
* src/mathed/InsetMathGrid.C
(InsetMathGrid::doDispatch): Use the system clipboard for LFUN_PASTE
if it is newer.
* src/mathed/InsetMathNest.C
(InsetMathNest::doDispatch): Use the system clipboard for LFUN_PASTE
if it is newer.
* src/text3.C
(doInsertInset): Add a "0" argument to LFUN_PASTE, because we always
want to use the internal clipboard here
(LyXText::dispatch): ditto (when handling mouse button 2 press)
(LyXText::dispatch): Use the system clipboard for LFUN_PASTE if it
is newer.
(LyXText::getStatus): Also enable LFUN_PASTE if the system clipboard
is owned by another application
* GuiApplication.C (GuiApplication): make sure that the Qtranslator
holding the Qt translations is not deleted. Now keyboard shortcuts and
Qt stock dialogs are properly translated.
Georg Baum [Thu, 4 Jan 2007 11:05:22 +0000 (11:05 +0000)]
* src/insets/insettabular.C
(InsetTabular::getStatus): Correctly enable LFUN_PASTE when the
special tabular clipboard is empty by removing an errornous
fall-through to LFUN_INSET_MODIFY
Georg Baum [Thu, 4 Jan 2007 09:48:54 +0000 (09:48 +0000)]
* src/insets/insettabular.C
(InsetTabular::doDispatch): Don't reset the table paste buffer
when pasting from the external clipboard or selection, since no
paste operation should ever change any clipboard.
At the same time make the code more readable by removing the
fall-through.
Georg Baum [Thu, 4 Jan 2007 09:35:44 +0000 (09:35 +0000)]
* src/mathed/InsetMathNest.C
(InsetMathNest::lfunMouseRelease): Remove commented call of
theSelection->put(), since that should never be called from the kernel
Georg Baum [Thu, 4 Jan 2007 09:26:42 +0000 (09:26 +0000)]
* src/CutAndPaste.C
(cutSelection): Fill the system clipboard if this is a real cut (only
if the cursor is in texted, the mathed case is done elsewhere).
(cutSelection): Remove obsolete comment. Since the separation of
selection and clipboard the selection is only filled as response
to an explicit request by the X server, so there is no slowdown.
The clipboard is only filled on explicit user request, so that does
not result in slowdown either.