changeset 30005:7677b6184c0b

use new Qt::ImCursorRectangle enum value if available * acinclude.m4 (OCTAVE_CHECK_QT_IMCURSORRECTANGLE_ENUM_VALUE): New macro. (OCTAVE_CHECK_QT_VERSION): Use it. * TerminalView.cpp (TerminalView::inputMethodQuery): Use Qt::ImCursorRectangle instead of Qt::ImMicroFocus if available.
author John W. Eaton <jwe@octave.org>
date Wed, 18 Aug 2021 14:11:56 -0400
parents 2c40f84bfe10
children 75dff8f2de2e
files libgui/qterminal/libqterminal/unix/TerminalView.cpp m4/acinclude.m4
diffstat 2 files changed, 34 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/unix/TerminalView.cpp	Wed Aug 18 13:49:06 2021 -0400
+++ b/libgui/qterminal/libqterminal/unix/TerminalView.cpp	Wed Aug 18 14:11:56 2021 -0400
@@ -2373,7 +2373,11 @@
   const QPoint cursorPos = _screenWindow ? _screenWindow->cursorPosition() : QPoint(0,0);
   switch ( query )
     {
+#if defined (HAVE_QT_IMCURSORRECTANGLE_ENUM_VALUE)
+    case Qt::ImCursorRectangle:
+#else
     case Qt::ImMicroFocus:
+#endif
       return imageToWidget(QRect(cursorPos.x(),cursorPos.y(),1,1));
       break;
     case Qt::ImFont:
--- a/m4/acinclude.m4	Wed Aug 18 13:49:06 2021 -0400
+++ b/m4/acinclude.m4	Wed Aug 18 14:11:56 2021 -0400
@@ -1959,6 +1959,35 @@
   fi
 ])
 dnl
+dnl Check whether the Qt::ImCursorRectangle enum value exists.
+dnl It replaces the Qt::ImMicroFocus enum value that was deprecated
+dnl in Qt 5.14.
+dnl
+AC_DEFUN([OCTAVE_CHECK_QT_IMCURSORRECTANGLE_ENUM_VALUE], [
+  AC_CACHE_CHECK([for Qt::ImCursorRectangle enum value],
+    [octave_cv_qt_imcursorrectangle_enum_value],
+    [AC_LANG_PUSH(C++)
+    ac_octave_save_CPPFLAGS="$CPPFLAGS"
+    ac_octave_save_CXXFLAGS="$CXXFLAGS"
+    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
+    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+        #include <Qt>
+        ]], [[
+        Qt::InputMethodQuery method_query = Qt::ImCursorRectangle;
+        ]])],
+      octave_cv_qt_imcursorrectangle_enum_value=yes,
+      octave_cv_qt_imcursorrectangle_enum_value=no)
+    CPPFLAGS="$ac_octave_save_CPPFLAGS"
+    CXXFLAGS="$ac_octave_save_CXXFLAGS"
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_qt_imcursorrectangle_enum_value = yes; then
+    AC_DEFINE(HAVE_QT_IMCURSORRECTANGLE_ENUM_VALUE, 1,
+      [Define to 1 if you have the `Qt::ImCursorRectangle' enum value.])
+  fi
+])
+dnl
 dnl Check whether the Qt::SplitBehavior enum exists and has
 dnl Qt::KeepEmptyParts and Qt::SkipEmptyParts members.  This enum
 dnl was introduced or modified in Qt 5.14.
@@ -2184,6 +2213,7 @@
 
     OCTAVE_CHECK_QOVERLOAD_TEMPLATE
     OCTAVE_CHECK_QREGION_ITERATORS
+    OCTAVE_CHECK_QT_IMCURSORRECTANGLE_ENUM_VALUE
     OCTAVE_CHECK_QT_SPLITBEHAVIOR_ENUM
 
     if test -n "$OPENGL_LIBS"; then