From 77911f6418ceb771c5f0b6b2aa33328c7aa5530a Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Wed, 08 Jul 2026 18:28:29 +0200
Subject: [PATCH] feat: continuous text selection, Cmd+Enter to send, deploy.sh OTA/iPad targets
---
lib/widgets/input_bar.dart | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/lib/widgets/input_bar.dart b/lib/widgets/input_bar.dart
index 5ba3fa2..ae191b3 100644
--- a/lib/widgets/input_bar.dart
+++ b/lib/widgets/input_bar.dart
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
import '../providers/providers.dart';
import '../theme/app_theme.dart';
@@ -97,23 +98,37 @@
const SizedBox(width: 8),
// Text field
Expanded(
- child: TextField(
- controller: textController,
- decoration: InputDecoration(
- hintText: 'Type a message...',
- filled: true,
- fillColor: isDark ? AppColors.darkInputBg : AppColors.lightInputBg,
- border: OutlineInputBorder(
- borderRadius: BorderRadius.circular(24),
- borderSide: BorderSide.none,
+ child: CallbackShortcuts(
+ // Cmd+Enter (or Ctrl+Enter on other keyboards) sends the message.
+ // Plain Enter still inserts a newline (textInputAction: newline).
+ bindings: <ShortcutActivator, VoidCallback>{
+ const SingleActivator(LogicalKeyboardKey.enter, meta: true):
+ onSendText,
+ const SingleActivator(LogicalKeyboardKey.enter, control: true):
+ onSendText,
+ },
+ child: TextField(
+ controller: textController,
+ decoration: InputDecoration(
+ hintText: 'Type a message...',
+ filled: true,
+ fillColor: isDark
+ ? AppColors.darkInputBg
+ : AppColors.lightInputBg,
+ border: OutlineInputBorder(
+ borderRadius: BorderRadius.circular(24),
+ borderSide: BorderSide.none,
+ ),
+ contentPadding: const EdgeInsets.symmetric(
+ horizontal: 16,
+ vertical: 10,
+ ),
+ isDense: true,
),
- contentPadding:
- const EdgeInsets.symmetric(horizontal: 16, vertical: 10),
- isDense: true,
+ textInputAction: TextInputAction.newline,
+ maxLines: 4,
+ minLines: 1,
),
- textInputAction: TextInputAction.newline,
- maxLines: 4,
- minLines: 1,
),
),
const SizedBox(width: 8),
--
Gitblit v1.3.1